
Извлекает и расшифровывает внутренние полезные нагрузки из образцов обфускатора Donut путём обнаружения сигнатур шелл-кода загрузчика, разбора структуры DONUT_INSTANCE и выгрузки данных DONUT_MODULE.
Инструмент для извлечения конфигурации и модулей из donut binary obfuscator
donut-decryptor проверяет файл(ы) на наличие известных сигнатур загрузочного шелл-кода обфускатора donut. При обнаружении он анализирует шелл-код для поиска, расшифровки и извлечения структуры DONUT_INSTANCE, встроенной в бинарный файл, и выводит соответствующие данные конфигурации. Если в бинарном файле присутствует DONUT_MODULE, он расшифровывается и сохраняется на диск.
Вы можете установить donut-decryptor для использования, перейдя в корневой каталог проекта и воспользовавшись pip:
cd /path/to/donut-decryptor
python -m pip install .
После установки становится доступен командный скрипт. Для получения инструкций по использованию выполните:
donut-decryptor --help
В этом проекте используется Hatch для управления проектом, Ruff для линтинга и форматирования, а mypy для проверки типов.
Установите Hatch:
pip install hatch
hatch run test
hatch run test-cov # with coverage
hatch run lint:style # check style
hatch run lint:fmt # format code and fix issues
hatch run lint:typing # run mypy type checking
hatch run lint:all # run all checks
Файлы, находящиеся в каталоге samples, представляют собой 7z-архивы, защищённые паролем infected, все они содержат donut-файлы, которые можно декодировать с помощью этого скрипта.