
Обфускация кода Python 2.x и 3.x
переменных/классов/функций/имен-файлов на случайные строки заданной длины, затем все символы в их шестнадцатеричные значениякомментарии, все пустые строкифрагменты кода/функции/классы с постоянно разными значениями$ git clone https://github.com/Hnfull/Intensio-Obfuscator.git
$ python3 -m pip install -r Intensio-Obfuscator/requirements.txt
$ cd Intensio-Obfuscator/src/intensio_obfuscator
$ python3 intensio_obfuscator.py --help
$ python3 -m pip install intensio-obfuscator
$ intensio_obfuscator --help
| Возможности | Описания | Цель обфускации | Совместимость со всеми типами кода/синтаксиса Python |
|---|---|---|---|
| Удалить комментарии | Удалить все комментарии (эта функция выполняется по умолчанию) | Удалить потенциальную поведенческую информацию | высокая файлы python 2 и 3 |
| Удалить пустые строки | Удалить все пустые строки (эта функция выполняется по умолчанию) | Уменьшить читаемость кода в открытом виде | высокая файлы python 2 и 3 |
| Коррекция добавления в пустые классы/функции | Добавить наполнение в пустые классы и функции, если класс или функция содержат только комментарии, функция по умолчанию Удалить комментарии может потенциально оставить класс или функцию пустыми, это позволит избежать ошибки (эта функция выполняется по умолчанию) | Нет, только чтобы избежать ошибок | высокая файлы python 2 и 3 |
| Замена строки на смешанную строку | Заменить все имена переменных/классов/функций на случайные строки заданной длины | Уменьшить читаемость кода в открытом виде - затруднить определение поведения переменных/классов/функций | низкая - высокая (зависит от количества имен, которые нужно исключить или нет) файлы python 2 и 3 |
| Исключить слова | Файл для исключения слов (проверьте документацию по формату) только для функции обфускации 'заменить имя файла' | Информация не требуется | Информация не требуется |
| Добавление скрипта | Добавление случайных скриптов после каждой строки | Уменьшить читаемость кода в открытом виде - добавить мертвые фрагменты кода/классы/функции для запутывания и замедления анализа поведения программы | высокая файлы python 2 и 3 |
| Заменить имена файлов | Заменить все имена файлов на случайные строки заданной длины | Уменьшить читаемость кода в открытом виде - уменьшить возможность определения функциональности файлов | низкая файлы python 2 и 3 |
| Исключить имена файлов | Файл для исключения имен файлов (проверьте документацию по формату) только для функции обфускации 'заменить имя файла' | Информация не требуется | Информация не требуется |
| Заменить строку на hex | Заменить все символы на их шестнадцатеричные значения | Уменьшить читаемость кода в открытом виде / избежать обнаружения командами 'grep' например | средняя только файлы python 2 |
| Коррекция удаления pyc файлов |
замена строки на смешанную строку -> -rts, --replacetostrдобавление скрипта -> -ps, --paddingscriptзамена имени файла -> -rfn, --replacefilenameзамена строки на hex -> -rth, --replacetohex| Параметры | Описания |
|---|---|
| -h, --help | показать это справочное сообщение и выйти |
| -i, --input | исходная директория - укажите директорию, содержащую ваш файл |
| -o, --output | выходная директория, которая будет обфусцирована - укажите пустую директорию, которая будет содержать ваш файл |
| -mlen, --mixerlength | определить длину генерируемых случайных строк [lower:32|medium:64|high:128] символов, когда указаны функции --replacetostr или --paddingscripts или -rfn, --replacefilesname или --replacetohex, возможные значения: [lower|medium|high] |
| -ind, --indent | укажите отступ вашего исходного кода Python, возможные значения: [2|4|8] |
| -rts, --replacetostr | включить функцию обфускации замена строки на смешанную строку |
| --excludewords | файл для исключения определенных слов (проверьте документацию по формату) только для функции обфускации -rts, --replacetostr |
| -ps, --paddingscript | включить функцию обфускации добавление скрипта |
| -rfn, --replacefilename | включить функцию обфускации заменить имя файла |
| --excludefiles | файл для исключения имени файла (проверьте документацию по формату) только для функции обфускации -rfn, --replacefilename |
| -rth, --replacetohex | включить функцию обфускации заменить строку на hex (только файлы python 2) |
| --version | проверить текущую версию |
| -v, --verbose | увеличить подробность вывода |
| Удалить все pyc файлы в выходной директории (эта функция выполняется по умолчанию) |
| Удалить уже скомпилированные файлы, которые не были обфусцированы ранее |
высокая файлы python 2 и 3 |
| Длина смеси низкая | Определить длину случайных строк в 32 символа, когда указаны параметры -rts, --replacetostr или -ps, --paddingscripts или -rfn, --replacefilesname или -rth, --replacetohex | Чем больше длина, тем сложнее читаемость кода | Информация не требуется |
| Длина смеси средняя | Определить длину случайных строк в 64 символа, когда указаны параметры -rts, --replacetostr или -ps, --paddingscripts или -rfn, --replacefilesname или -rth, --replacetohex | Чем больше длина, тем сложнее читаемость кода | Информация не требуется |
| Длина смеси высокая | Определить длину случайных строк в 128 символов, когда указаны параметры -rts, --replacetostr или -ps, --paddingscripts или -rfn, --replacefilesname или -rth, --replacetohex | Чем больше длина, тем сложнее читаемость кода | Информация не требуется |