Protejează-ți scripturile Python împotriva ingineriei inverse cu Pyarmor

Python este foarte ușor de citit și are o utilizare pe scară largă. Deși această lizibilitate încurajează colaborarea, crește riscul accesului neautorizat și al utilizării greșite. Concurenții tăi sau actorii rău intenționați vă pot replica algoritmii și logica proprietară fără garanții adecvate. Acest lucru va afecta negativ integritatea software-ului și încrederea utilizatorilor.

VIDEO MUO AL ZILEI

Derulați PENTRU A CONTINUA CU CONȚINUT

Implementarea unor măsuri de securitate robuste, cum ar fi ofuscarea și verificarea licenței, vă întărește software-ul împotriva potențialelor amenințări. Protecția scripturilor Python nu este doar o practică; este o strategie critică pentru a asigura confidențialitatea inovațiilor dumneavoastră și pentru a menține încrederea utilizatorilor dumneavoastră în peisajul digital.

Înțelegerea Pyarmor

Pyarmor este o bibliotecă de linie de comandă. Ajută la protejarea și ofuscarea scripturilor și pachetelor Python. Transformă codul original Python într-o formă care este mai greu de înțeles, menținând în același timp funcționalitatea. Procesul de ofuscare redenumește variabilele, funcțiile și clasele în nume nedescriptive. De asemenea, elimină comentariile și restructurează codul. Acest lucru face ca codul să fie dificil de reverse, manipulat sau copiat.

Pyarmor poate securiza scripturi Python individuale și pachete întregi și chiar poate adăuga verificarea licenței la codul dvs.

Instalarea bibliotecii Pyarmor

Pyarmor este listat în Python Package Index (PyPI). Utilizați pip pentru a-l instala rulând următoarea comandă:

 pip install pyarmor

Nu este obligatoriu să instalați Pyarmor în același director care găzduiește proiectul dvs. Îl puteți instala oriunde pe computer și puteți securiza orice script Python din orice director.

  Soluția dvs. supremă de productivitate prin e-mail a fost dezvăluită

Cu toate acestea, dacă doriți să rulați scripturile securizate fără a fi necesar să instalați Pyarmor pe mașina țintă, trebuie să îl instalați în același director care găzduiește proiectul dvs. Acest lucru se datorează faptului că scripturile securizate vor conține referințe la runtime-ul Pyarmor, care va trebui să fie prezent pentru a rula scripturile.

Securizarea scripturilor Python individuale

Securizarea scripturilor individuale folosind Pyarmor este simplă. Următorul script care adaugă două numere va servi drept exemplu.

 def add_numbers(num1, num2):
   result = num1 + num2
   print("The sum of {} and {} is: {}".format(num1, num2, result))


num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)

Utilizați linia de comandă pentru a naviga la directorul în care ați instalat Pyarmor. Apoi, rulați următoarea comandă pentru a cripta și a înfunda scriptul. Înlocuiți main.py cu numele scriptului dvs.

 pyarmor gen --output dist main.py

După rularea comenzii, Pyarmor creează un nou folder numit dist. În interiorul acestuia se află scriptul dvs. securizat.

Deschideți scriptul securizat pentru a-i vedea conținutul.

Captura de ecran de mai sus arată rezultatul după ce Pyarmor ofusca și criptează scriptul de adăugare simplă. Acum nu puteți spune ce face scriptul doar privindu-l.

Pentru a rula scriptul securizat, deschideți terminalul sau promptul de comandă și navigați la locația care conține directorul dist. Apoi utilizați următoarea comandă pentru a rula scriptul:

 python dist/main.py 

Înlocuiți main.py cu numele scriptului dvs. Scriptul ar trebui să ruleze așa cum ar fi, fără ofuscare. Testați-l cu atenție pentru a vă asigura că toate funcțiile funcționează așa cum vă așteptați.

Protejarea pachetelor Python întregi

Pachetele pot conține câteva module sau sute de module în funcție de scopul lor. Protejarea fiecărui modul separat poate fi obositoare. Din fericire, Pyarmor are capacitatea de a securiza un pachet întreg fără a fi necesar să specificați fiecare modul separat.

  Cum să controlați dispozitivele Smart Home în Centrul de control pe iPhone sau iPad

Să presupunem că aveți un pachet Python simplu numit sample_package cu următoarea structură:

 sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

Puteți crea câte module doriți.

Pentru a cripta și a ofusca pachetul, deschideți terminalul sau promptul de comandă și navigați la directorul în care se află pachetul dvs. Apoi rulați următoarea comandă:

 pyarmor gen -O dist -r -i sample_package 

Înlocuiți sample_package cu numele pachetului dvs. Această comandă va cripta și va ofusca directorul pachetului și va salva rezultatul protejat în directorul dist. Utilizați pachetul protejat ca și pentru orice alt pachet Python.

De exemplu. Pentru a utiliza pachetul exemplu de mai sus, creați un nou script în directorul dist:

 from my_package import module1, module2

module1.say_hello()
module2.do_something()

Când rulați codul, pachetul ar trebui să funcționeze așa cum ar fi înainte de a-l securiza.

Controlul accesului la scriptul dvs

Este posibil să doriți să limitați timpul în care un utilizator rulează scriptul dvs. De exemplu, în perioada de probă.

Pentru a limita timpul de rulare a scriptului, utilizați următoarea comandă atunci când vă ofuscați scriptul.

 pyarmor gen -O dist -e 30 main.py 

Înlocuiți 30 cu numărul de zile în care doriți ca scriptul să fie activ. De asemenea, îl puteți înlocui cu o dată exactă. După terminarea zilelor, scriptul va expira.

Puteți testa această funcționalitate setând o dată trecută. Acest lucru ar trebui să facă ca rularea scriptului să arunce o eroare. Utilizați următoarea comandă pentru a ofusca scriptul cu o dată expirată:

 pyarmor gen -O dist -e 2022-01-01 main.py

Apoi rulați scriptul securizat.

Eroarea arată că cheia de licență a expirat, prin urmare scriptul nu poate rula.

  Cum să ștergeți definitiv adresa Gmail

Echilibrarea securității și eficienței

În timp ce Pyarmor oferă mecanisme robuste de ofuscare pentru a îmbunătăți securitatea codului dvs., este important să echilibrați măsurile de securitate și menținerea eficienței și performanței software-ului dvs. Puteți realiza acest lucru prin:

  • Evaluarea necesității de înfundare: dacă software-ul dvs. implică algoritmi de proprietate, date sensibile sau o logică de afaceri unică, obscurcarea este extrem de benefică. Cu toate acestea, pentru scripturile open-source cu preocupări minime de proprietate intelectuală, compromisul dintre securitate și performanță înclină mai mult spre eficiență.
  • Evaluarea impactului asupra performanței: Obfuscationul introduce o suprasarcină suplimentară de rulare din cauza operațiunilor și transformărilor suplimentare aplicate codului. Acest impact este neglijabil pentru scripturile mici, dar devine mai vizibil pentru proiectele mai mari. Ar trebui să evaluați cu atenție implicațiile de performanță ale ofuscarii și să efectuați teste pentru a vă asigura că software-ul dvs. rămâne receptiv și eficient.
  • Efectuarea de actualizări și întreținere regulată: actualizați în mod regulat codul, licențele și mecanismele de securitate obscurcate pentru a fi în fața potențialelor vulnerabilități. Echilibrați acest lucru cu necesitatea de a minimiza întreruperile pentru utilizatori.

Poate cineva să spargă codul ofuscat?

Cracarea software-ului se referă la actul de eliminare a mecanismelor de protecție la copiere sau de licențiere a unei aplicații software. Pentru a obține acces neautorizat la funcționalitatea completă fără a plăti pentru aceasta. Este important să rețineți că ofuscarea software-ului dvs. nu îl protejează complet de crackeri.

Cu suficientă determinare și resurse, codul ofuscat poate fi spart. Acesta este motivul pentru care ar trebui să urmăriți efectuarea de actualizări și întreținere regulate pentru a corecta eventualele lacune suspectate.