office-windows.ru

DeNuitkanizator вскрыл exe без IDA. Реверс по-новому!

DeNuitkanizator вскрыл exe без IDA. Реверс по-новому!
Foto: office-windows.ru

Автор office-windows.ru, июн 25, 2026

DeNuitkanizator вскрыл exe без IDA. Реверс по-новому!

Эксперимент показал: дизассемблировать программы можно без классических инструментов

Реверс-инженер решил проверить, насколько далеко можно продвинуться при анализе исполняемых файлов, отказавшись от привычных 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)ЭнтропияПрава
.text146 432 байт6.15/8.0EXEC
.rdata52 736 байт6.16/8.0R
.rsrc4 692 480 байт5.55/8.0R
.data24 064 байт2.21/8.0RW
.reloc2 048 байт5.19/8.0R

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 даёт читаемый псевдокод, но требует ручной фильтрации мусорных блоков