Защита исходного кода Python

Я хочу защитить сценарий Python, так как люди, которые, скорее всего, известны как придурки и крадут чью-то работу, я бы очень хотел защитить ее. Это грустно, как легко это может быть украдено... скопируйте вставьте мою работу, в которой я провел месяцы, и затем кто-то меняет биты и требует это для себя.

Как я могу запретить кому-либо видеть код? (Я попробовал py2exe и аналогичные, но это чаще всего подозрительно для пользователя, так как его.exe, и я не хочу, чтобы кто-либо боялся моего программного обеспечения)

Linux Python2 и Python3

3 ответа

Зашифруйте код Python и расшифруйте их при импорте.

Шаг 1 - Реализуйте свой собственный загрузчик модулей

Вы можете использовать importlib для реализации своего собственного загрузчика модулей python. То есть вы можете изменить процесс импорта, чтобы расшифровать зашифрованный код Python.

Но вы можете сказать, что загрузчик модулей также написан на python, ключ шифрования легко увидеть в скрипте python.

Итак, давайте перейдем к следующему шагу.

Шаг 2 - Перепишите ваш загрузчик модулей на C/C++

Благодаря Cython модуль Python может быть написан на C/C++. Код дешифрования будет скомпилирован в двоичный код. Это очень трудно реконструировать по сравнению с py или pyc файлами.

Шаг 3 - Напишите скрипт для шифрования вашего исходного дерева

Это самая простая часть.:)

Если вам интересна тема, вам поможет этот проект - pyprotect.

Здесь есть два вопроса: защита кода и собственность. Итак, лицензирование было бы вторым аспектом, но, судя по вашему вопросу, лицензирование - это не ваша проблема как таковая. Некоторые модули существуют для защиты вашего исходного кода, например sourcedefender. Это работает почти так же, как описано в @lambda11, хотя я понятия не имею, используют ли они C/C++ для своей магии. Тот факт, что они "творят магию", заставляет меня нервничать лично, защита кода - это одно, но если это действительно так, я думаю, вопрос в том, насколько сложно в конечном итоге добраться до вашего кода. Это вообще отдельная история. Но если вы ищете короткие ответы, что ж, люди делали это раньше.

У меня была такая же проблема в течение длительного времени. Я могу сказать, что лучшее и короткое решение - это два шага:

1 - шифрование вашего исходного кода с помощью стороннего источника здесь:

  • pip установить sourcedefender

  • важно: вы должны импортировать sourcedefender первой строкой в ​​основной файл кода

  • чрезвычайно важно: вы должны импортировать все установленные пакеты pip в main

    файл кода точно так же, как он используется в зашифрованных файлах проекта, например: from x import y

  • зашифруйте любой файл, который вы хотите, используя команду: sourcedefender encrypt file.py

  • затем: pyinstaller --onefile --add-двоичный файл зашифрованного кода;. app.py'

  • Примечание. Если у вас есть это для запуска графического интерфейса:

    если имя == 'основной ': main()

    Попробуйте это вместо этого:

    #если имя == 'главный ': основной()

2- использование API-интерфейсов лицензирования программного обеспечения, таких как: криптолинза

Другие вопросы по тегам