DeNuitkanizator вскрыл exe без IDA. Реверс по-новому!
Автор office-windows.ru, июн 25, 2026
Эксперимент показал: дизассемблировать программы можно без классических инструментов
Реверс-инженер решил проверить, насколько далеко можно продвинуться при анализе исполняемых файлов, отказавшись от привычных Ghidra и IDA PRO. Вместо них - только DeNuitkanizator и HEX-редактор HxD. Результат оказался неожиданно убедительным.
Суть эксперимента
Под анализ попали два файла с принципиально разной природой. Первый - минималистичный hello.exe весом 3,65 МБ, собранный через Nuitka из двух строк Python-кода. Второй - AnyDesk версии 7.1.6.0, нативный исполняемый файл на 3,81 МБ, никак не связанный с Python-упаковщиками. атланта юнайтед
Оба файла прогнали через DeNuitkanizator - инструмент, изначально заточенный под анализ Nuitka- и PyInstaller-сборок. Программа извлекает метаданные, строки, модули и структуру PE-файла, складывая всё в папку вывода. Но главная фишка свежей версии - технология Asm-To-C, которая построчно переводит ассемблерный код x86/x64 в читаемый C-псевдокод.
Что удалось вытащить из hello.exe
Поскольку файл собран в режиме Standalone, а не Onefile, энтропия секций оказалась далека от максимума - никакого zstd-сжатия, данные лежат почти открыто. В секции .rsrc через HxD без труда нашлась строка из исходника: буквально тот самый текст, который программа выводит при запуске.
Дизассемблер на базе Capstone выдал полную картину: ASM-листинг и его C-перевод, замороженные модули, PE-заголовки с упоминанием python311.dll и импортируемых функций вроде PyImport_ImportFrozenModule. Версия Python определилась мгновенно.
Секции файла по итогу выглядят так:
| Секция | Размер (RawSize) | Энтропия | Права |
|---|---|---|---|
| .text | 146 432 байт | 6.15/8.0 | EXEC |
| .rdata | 52 736 байт | 6.16/8.0 | R |
| .rsrc | 4 692 480 байт | 5.55/8.0 | R |
| .data | 24 064 байт | 2.21/8.0 | RW |
| .reloc | 2 048 байт | 5.19/8.0 | R |
AnyDesk: подпись DigiCert и следы Buildbot
С нативным файлом история интереснее. DeNuitkanizator честно сообщил, что Nuitka-структур не обнаружено, зато выгрузил overlay - область после основного PE-тела, где обычно живёт цифровая подпись. Открыв overlay.bin в HxD, исследователь увидел сертификат от DigiCert - одного из крупнейших мировых центров сертификации. Алгоритм подписи: RSA-4096 в связке с SHA-384. Серьёзный уровень.
В строках бинарника обнаружился след системы CI/CD Buildbot - инструмента автоматизации сборок, написанного на Python и популярного в проектах с нестандартными требованиями к конфигурации. Именно его гибкость делает его выбором для сложных мультиплатформенных билдов.
Выводы и ограничения подхода
Эксперимент доказал: связка DeNuitkanizator плюс HxD способна дать аналитику вполне рабочую базу для первичного изучения файла. Строки, секции, заголовки, подписи, версии рантаймов - всё это извлекается без IDA и Ghidra.
Слабое место - дизассемблер на основе Capstone работает линейно, без рекурсивного обхода графа управления. Это означает шум: часть дизассемблированного кода окажется мусором, и аналитику придётся вручную отсеивать нерелевантные блоки. Для глубокого анализа логики программы классические инструменты пока незаменимы. Но для быстрой разведки - вполне достаточно.
- Nuitka Standalone - строки лежат в открытом виде, извлекаются тривиально
- Nuitka Onefile - энтропия 8.0/8.0 из-за zstd, прямой доступ к строкам закрыт
- Нативный exe - overlay с подписью читается через HxD без дополнительных инструментов
- Asm-To-C даёт читаемый псевдокод, но требует ручной фильтрации мусорных блоков