Обфусцирование байт-кода Python через мутацию интерпретатора

На самом деле, Dropbox сделали это очень хорошо, они смогли защитить свое настольное приложение, сделанное на python; Я много исследовал это, но нет лучшего решения, чем запутывание, которое не очень безопасный способ, и вы в конечном итоге увидите, что ваш код куда-то загружен.

Я слушал сессиюДжованни Баджо (основатель PyInstaller), он сказал, что Dropbox делает это:

Скремблирование байт-кода путем перекомпиляции вашего CPython 'и, следовательно, стандартный интерпретатор CPython не сможет его запустить, только перекомпилированный интерпретатор cpython.Все, что вам нужно сделать, это перетасовать цифры ниже .I 'define loadup 8

мы никогда не проходили через Pythons исходный код, поэтому я не буду утверждать, что я полностью понимаю вышеупомянутые слова.

Мне нужно услышать голос экспертов: как это сделать? И если после перекомпиляции я смогу упаковать свое приложение, используя доступные инструменты, такие как PyInstaller?

Обновить:

Я провел некоторое исследование относительно того, как Dropbox делает этот тип запутывания / мутации, и нашел это:

В соответствии сХаген Фричони делают это в два этапа:

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

а) Расшифровывает модули и

б) предотвращает доступ к дешифрованным кодовым объектам.

Это был бы простой путь, позволяющий dropbox все дешифровать и выгружать модули, используя встроенный маршаллер.

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос