Подтвердить что ты не робот

Обфускация кода Python

Знаете ли вы о каком-либо инструменте, который мог бы помочь мне в запутывании кода python?

4b9b3361

Ответ 1

Ваше проблемное пространство указано ниже. Это для приложения командной строки? Этот код предполагается использовать в качестве библиотеки?

В дополнение к двум другим ответам вы можете вставить код в двоичный файл. Когда он запускается, декодируйте код и оценивайте строку. Это работает и для расширения общей библиотеки. Вы также можете сделать это с байтовым кодом, я думаю, но это было бы не так просто, как вызвать Py_EvalCode.

py2exe или freeze - другое решение, которое преобразует код в исполняемый файл. Он просто включает код в двоичном формате и не делает никакого серьезного обложения, но он все же сложнее, чем открытие файла .py.

Вы можете написать код в Cython, который похож на Python и записывает файлы расширения Python в C, для использования в качестве .so. Это, пожалуй, самое сложное из них - перепроектировать и дать вам язык высокого уровня для развития.

Все они взломаны, как и все решения. Как вам тяжело это быть?

Ответ 3

На самом деле я нашел очень хороший проект, который в основном конвертирует Python в C++ и создает двоичный статически связанный файл.

Проверьте это: http://www.nuitka.net/

Ответ 4

Во многих ситуациях вы можете отправлять байт-скомпилированные файлы .pyc вместо исходных файлов .py. Это дает вам некоторый уровень обфускации. Как предполагает pyobfuscate README, это имеет ограничения. Но вы можете комбинировать два подхода.

Ответ 5

Стандартная библиотека Python включает compileall.py. Вы можете запустить это в каталоге, и он будет генерировать файлы .pyc для всех ваших исходных файлов. Файлы .pyc будут включать только байт-коды и docstrings, а также исключить все комментарии. Затем вы можете скопировать этот каталог, а затем запустить что-то вроде rm -rf $(find . -name .py), чтобы удалить исходные исходные файлы.

Ответ 6

Лучше всего скомпилировать его, используя Shed Skin, экспериментальный компилятор Python-to-С++.

Ответ 7

Хотя это не делает обфускацию, этот рецепт Python отлично работает для сведения к минимуму размера кода Python, включая удаление комментариев.