Защитете вашите Python скриптове срещу обратно инженерство с Pyarmor

Python е много четим и има широко приложение. Въпреки че тази четливост насърчава сътрудничеството, тя увеличава риска от неоторизиран достъп и злоупотреба. Вашите конкуренти или злонамерени участници могат да копират вашите алгоритми и собствена логика без подходящи предпазни мерки. Това ще се отрази негативно върху целостта на вашия софтуер и доверието на вашите потребители.

MUO ВИДЕО НА ДЕНЯ

ПРЕВЪРТЕТЕ, ЗА ДА ПРОДЪЛЖИТЕ СЪС СЪДЪРЖАНИЕТО

Прилагането на стабилни мерки за сигурност, като обфускация и проверка на лиценза, укрепва вашия софтуер срещу потенциални заплахи. Защитата на Python скриптове не е просто практика; това е критична стратегия за гарантиране на поверителността на вашите иновации и поддържане на доверието на вашите потребители в цифровата среда.

Разбиране на Pyarmor

Пярмор е библиотека от командния ред. Той помага за защитата и обфускацията на скриптове и пакети на Python. Той трансформира оригиналния код на Python във форма, която е по-трудна за разбиране, като същевременно запазва своята функционалност. Процесът на обфускация преименува променливи, функции и класове на неописателни имена. Той също така премахва коментари и преструктурира кода. Това прави кода труден за обратно проектиране, подправяне или копиране.

Pyarmor може да защити отделни Python скриптове и цели пакети и дори да добави проверка на лиценз към вашия код.

Инсталиране на библиотеката Pyarmor

Pyarmor е включен в индекса на пакетите на Python (PyPI). Използвайте pip, за да го инсталирате, като изпълните следната команда:

 pip install pyarmor

Не е задължително да инсталирате Pyarmor в същата директория, която хоства вашия проект. Можете да го инсталирате навсякъде на вашия компютър и да можете да защитите всички Python скриптове от всяка директория.

  Как да вмъкнете текстово поле в Google Документи

Ако обаче искате да стартирате защитените скриптове, без да се налага да инсталирате Pyarmor на целевата машина, трябва да го инсталирате в същата директория, която хоства вашия проект. Това е така, защото защитените скриптове ще съдържат препратки към средата за изпълнение на Pyarmor, която ще трябва да присъства, за да се изпълняват скриптовете.

Защита на отделни Python скриптове

Защитата на отделни скриптове с помощта на Pyarmor е проста. Следният скрипт, който добавя две числа, ще служи като пример.

 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)

Използвайте командния ред, за да отидете до директорията, в която сте инсталирали Pyarmor. След това изпълнете следната команда, за да шифровате и объркате вашия скрипт. Заменете main.py с името на вашия скрипт.

 pyarmor gen --output dist main.py

След като изпълни командата, Pyarmor създава нова папка с име dist. Вътре в него се намира вашият защитен скрипт.

Отворете защитения скрипт, за да видите съдържанието му.

Екранната снимка по-горе показва изхода, след като Pyarmor обфускара и шифрова простия скрипт за добавяне. Сега не можете да разберете какво прави скриптът, като просто го погледнете.

За да изпълните защитения скрипт, отворете терминала или командния ред и отидете до местоположението, което съдържа директорията dist. След това използвайте следната команда, за да изпълните скрипта:

 python dist/main.py 

Заменете main.py с името на вашия скрипт. Скриптът трябва да работи, както би работил, без обфускация. Тествайте го внимателно, за да се уверите, че всички функции работят както очаквате.

  Как да използвате Google Password Checkup

Защита на цели пакети на Python

Пакетите могат да съдържат няколко модула или стотици модули в зависимост от тяхното предназначение. Защитата на всеки модул поотделно може да бъде изморителна. За щастие, Pyarmor има способността да защити цял пакет, без да се налага да указвате всеки модул поотделно.

Да приемем, че имате прост пакет на Python с име sample_package със следната структура:

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

Можете да създадете толкова модули, колкото желаете.

За да шифровате и объркате пакета, отворете терминала или командния ред и отидете до директорията, в която се намира вашият пакет. След това изпълнете следната команда:

 pyarmor gen -O dist -r -i sample_package 

Заменете sample_package с името на вашия пакет. Тази команда ще шифрова и замаскира директорията ви с пакети и ще запази защитения изход в директорията dist. Използвайте защитения пакет, както бихте направили за всеки друг пакет на Python.

Например. За да използвате горния примерен пакет, създайте нов скрипт в директорията dist:

 from my_package import module1, module2

module1.say_hello()
module2.do_something()

Когато стартирате кода, пакетът трябва да функционира както преди да го защитите.

Контролиране на достъпа до вашия скрипт

Може да искате да ограничите времето, през което потребител изпълнява вашия скрипт. Например по време на пробния период.

За да ограничите времето, през което се изпълнява скриптът, използвайте следната команда, когато обфускавате скрипта си.

 pyarmor gen -O dist -e 30 main.py 

Заменете 30 с броя дни, в които искате скриптът да е активен. Можете също да го замените с точна дата. След изтичане на дните скриптът ще изтече.

Можете да тествате тази функционалност, като зададете минала дата. Това трябва да накара изпълнението на скрипта да изведе грешка. Използвайте следната команда, за да скриете скрипта с изтекла дата:

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

След това стартирайте защитения скрипт.

  Коригиране на грешка в чата на Reddit при зареждане на съдържание

Грешката показва, че лицензионният ключ е изтекъл, следователно скриптът не може да се изпълнява.

Балансиране на сигурност и ефективност

Докато Pyarmor предлага стабилни механизми за обфускация за подобряване на сигурността на вашия код, важно е да балансирате между мерките за сигурност и поддържането на ефективността и производителността на вашия софтуер. Можете да постигнете това чрез:

  • Оценяване на необходимостта от обфускация: Ако вашият софтуер включва патентовани алгоритми, чувствителни данни или уникална бизнес логика, обфускацията е много полезна. Въпреки това, за скриптове с отворен код с минимални опасения за интелектуалната собственост, компромисът между сигурност и производителност клони повече към ефективността.
  • Оценяване на въздействието върху производителността: Обфускацията въвежда допълнително време за изпълнение поради допълнителните операции и трансформации, приложени към кода. Това въздействие е незначително за малки скриптове, но става по-забележимо за по-големи проекти. Трябва внимателно да прецените последиците от обфускацията върху производителността и да проведете тестове, за да сте сигурни, че вашият софтуер остава отзивчив и ефективен.
  • Провеждане на редовни актуализации и поддръжка: Редовно актуализирайте своя обфусциран код, лицензи и механизми за сигурност, за да изпреварвате потенциалните уязвимости. Балансирайте това с необходимостта да сведете до минимум прекъсванията за вашите потребители.

Може ли някой да разбие обфусцирания код?

Софтуерното кракване се отнася до акта на премахване на механизмите за защита срещу копиране или лицензиране на софтуерно приложение. За да получите неоторизиран достъп до пълната му функционалност, без да плащате за това. Важно е да се отбележи, че обфускацията на вашия софтуер не го предпазва напълно от кракери.

С достатъчно решителност и ресурси обфусцираният код може да бъде разбит. Това е причината, поради която трябва да се стремите да провеждате редовни актуализации и поддръжка, за да коригирате всички предполагаеми вратички.