Защитите скрипты Python от обратного проектирования с помощью Pyarmor
Python легко читается и широко используется. Хотя такая удобочитаемость поощряет совместную работу, она увеличивает риск несанкционированного доступа и неправильного использования. Конкурент или злоумышленник может скопировать вашу проприетарную логику и алгоритмы без надлежащей защиты. Это негативно повлияет на целостность программного обеспечения и доверие пользователей.
Внедрите строгие меры безопасности, такие как запутывание данных и проверка лицензии, чтобы защитить свое программное обеспечение от потенциальных угроз. Защита скриптов Python — это не просто рутина; это важная стратегия для обеспечения безопасности ваших инноваций и поддержания доверия пользователей к цифровому ландшафту.
Что такое Пирмор?
Pyarmor — это библиотека командной строки. Это помогает защитить и скрыть скрипты и пакеты Python. Он преобразует исходный код Python в более неясную форму, сохраняя при этом свою функциональность. Маскировка переименовывает переменные, функции и классы в неописательные имена. Он также удаляет комментарии и реорганизует код. Это затрудняет реверсирование, подделку или копирование кода.
Pyarmor может защитить отдельные скрипты Python и целые пакеты и даже добавить проверку лицензии в ваш код.
Установите Пиармор. библиотека
Pyarmor включен в индекс пакетов Python (PyPI). Используйте pip для его установки, выполнив следующую команду:
pip установить пиармор
Вам не нужно устанавливать Pyarmor в тот же каталог, где хранится ваш проект. Вы можете установить его в любом месте на вашем компьютере и защитить любой скрипт Python из нужного каталога.
Однако, если вы хотите запускать защищенные скрипты без необходимости установки Pyarmor на целевом компьютере, вам необходимо установить его в тот же каталог, где хранится ваш проект. Это связано с тем, что защищенные сценарии будут содержать ссылки на среду выполнения Pyarmor. Это обязательное условие для запуска скриптов.
Защитите каждый скрипт Python
Защитить каждый скрипт с помощью Pyarmor довольно просто. Давайте посмотрим на скрипт, который добавляет следующие два числа:
def add_numbers(num1, num2): result = num1 + num2 print(“Сумма {} и {}: {}”.format(num1, num2, result)) # Значение num1 = float(input(“Enter первое число: “)) num2 = float(input(“Введите второе число: “)) add_numbers(num1, num2)
Используйте командную строку, чтобы перейти в каталог, в который вы установили Pyarmor. Затем выполните следующую команду, чтобы перейти в каталог, в который вы установили Pyarmor. Замените main.py на имя вашего скрипта.
pyarmor gen –output dist main.py
После запуска этой команды Pyarmor создает новый каталог с именем dist. Внутри он содержит ваш скрипт безопасности.
Откройте скрипт безопасности, чтобы увидеть его содержимое.
На приведенном выше снимке экрана показан результат после обфускации Pyarmor и кодирования простого дополнительного скрипта. Теперь вы не можете сказать, что делает скрипт, просто взглянув на него.
Чтобы запустить защищенный скрипт, откройте терминал или командную строку и перейдите в папку, где находится папка dist. Затем используйте следующую команду для запуска скрипта:
Python dist/main.py
Замените main.py на имя скрипта. Скрипт будет работать в обычном режиме без каких-либо помех. Тщательно протестируйте, чтобы убедиться, что все функции работают так, как вы ожидаете.
Защитите весь пакет 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:
из 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 01.01.2022 main.py
Затем запустите следующий скрипт безопасности:
Ошибка говорит о том, что срок действия лицензионного ключа истек, поэтому скрипт не может быть запущен.
Выше приведены вещи, которые вам нужно знать о безопасности сценариев в Python с использованием Pyarmor. Надеюсь, статья будет вам полезна.