Знаете ли вы о каком-либо инструменте, который мог бы помочь мне в запутывании кода python?
Обфускация кода Python
Ответ 1
Ваше проблемное пространство указано ниже. Это для приложения командной строки? Этот код предполагается использовать в качестве библиотеки?
В дополнение к двум другим ответам вы можете вставить код в двоичный файл. Когда он запускается, декодируйте код и оценивайте строку. Это работает и для расширения общей библиотеки. Вы также можете сделать это с байтовым кодом, я думаю, но это было бы не так просто, как вызвать Py_EvalCode.
py2exe или freeze - другое решение, которое преобразует код в исполняемый файл. Он просто включает код в двоичном формате и не делает никакого серьезного обложения, но он все же сложнее, чем открытие файла .py.
Вы можете написать код в Cython, который похож на Python и записывает файлы расширения Python в C, для использования в качестве .so. Это, пожалуй, самое сложное из них - перепроектировать и дать вам язык высокого уровня для развития.
Все они взломаны, как и все решения. Как вам тяжело это быть?
Ответ 2
Ответ 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, включая удаление комментариев.