Как стать автором
Обновить

Комментарии 16

Выносить критичные части в Сython?

В своё время так и сделал с защитой - компилируешь обычный питон скрипт в .o и всё. Из проблем только - сборку настроить.

Думали переписать на компилируемый язык, но и Go и Cython - это время. А в нашем случае выносить очень много.

А разве на Cython нужно переписывать? Вроде как достаточно просто скомпилировать питоновский скрипт и уже он будет "защищён", плюс станет работать чуточку быстрее.

Если в Cython просто в лоб засунуть Питоновский код, то на выходе получится питоновский же байткод, завёрнутый в бинарник. Чтобы Cython что-то компилировал, нужно код размечать.

Просто берём Nuitka, который делает файлы, работающие так же как .pyc но гораздо труднее читаемые. Потому что там стандартный загрузчик и скомпилированный код. Сломать простую защиту в таком коде не проще и не сложнее, чем в скомпилированном С++ - то есть элементарно. А вот понять всю логику, конечно, будет уже напряжнее. В первую очередь, как и с Denuvo - из -за отсутствия хороших инструментов для реверса такой системы.

Из сложностей - код придётся разметить, и с Django мало кто пробовал его использовать.

P.S. А ещё существует Cython.

Спасибо за совет! Посмотрю в эту сторону.

Аналогичная задача — защита кода.


Просто берём Nuitka ...

Смотрел в сторону Nuitka. Интересное решение.
У вас получилось использовать в коммерческих продуктах?

Мои коммерческие продукты защищены в первую очередь Законом Неуловимого Джо. А Nuitka это в основном чтобы не подключать весь вычислительный стек чтобы один раз файл декодировать.

Красиво ответили.
Нужно будет показать ваш ответ знакомому адвокату. Пусть поучится.

НЛО прилетело и опубликовало эту надпись здесь

Почему бы не использовать зашифрованную ВМ в качестве локального сервера? Вроде как даже вполне рабочий костыль

Так python же - компилируемый язык программирования!

Шучу, но в каждой шутке есть доля правды. Посмотрите код pydantic. Там, вроде, после сборки получаются so файлы. Правда, в Django много метамагии, может и не сработать. Но хоть критичную бизнес часть можно попробовать пересобрать.

Как уже упомянули, nuitka это прекрасное решение вашей проблемы. А если вместе с ней использовать pyarmor на максимальном уровне обфускации, то вообще нечитабельно будет. Такое просто лень реверсить будет.

На заре этого проекта я еще игрался с Numba, но не осилил. Привет бывшим коллегам ;)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории