Эксперимент показал: дизассемблировать Nuitka-сборки и нативные исполняемые файлы можно без привычных инструментов индустрии
Реверс-инженер провёл нестандартный эксперимент: разобрал два принципиально разных exe-файла, не прибегая к IDA Pro, Ghidra или x64dbg. В ход пошли лишь DeNuitkanizator и HxD. Результат оказался неожиданно убедительным.
Связка двух инструментов вместо привычного арсенала
Стандартный набор реверс-инженера давно устоялся: IDA Pro как флагман анализа, Ghidra от NSA как бесплатная альтернатива, x64dbg для динамической отладки. Каждый из них - отдельная экосистема с годами отработанных техник и плагинов. Но исследователь решил намеренно отказаться от этого стека. шахтёр донецк
DeNuitkanizator изначально позиционируется как анализатор Nuitka-сборок, PyInstaller и других упаковщиков. Он вытаскивает метаданные, строки, замороженные модули и структуру PE-файла, складывая всё в папку вывода. Его ключевая особенность - встроенная технология Asm-To-C, которая построчно переводит ассемблерный код x86/x64 в читаемый C-код на основе движка Capstone. HxD выступал вспомогательным инструментом - для прямого просмотра бинарных секций в шестнадцатеричном представлении.
hello.exe: Nuitka-сборка под микроскопом
Первый подопытный - крошечная программа весом 3,65 МБ, скомпилированная через Nuitka в режиме Standalone. Исходник предельно прост: вывод строки и ожидание ввода. Задача - найти эту строку в недрах бинарника и убедиться, что дизассемблер справляется с задачей.
После прогона через DeNuitkanizator исследователь открыл секцию .rsrc в HxD и без труда обнаружил целевую строку. Важный нюанс: в режиме onefile энтропия секции достигает 8.0 из 8.0 из-за сжатия алгоритмом zstd - в таком случае прямой поиск строк невозможен. Standalone-режим оставляет данные в читаемом виде.
Дизассемблер выдал полноценный листинг. Вот что удалось извлечь по секциям:
| Секция | Размер (Raw) | Энтропия | Права |
|---|---|---|---|
| .text | 146 432 байт | 6.15 / 8.0 | EXEC |
| .rdata | 52 736 байт | 6.16 / 8.0 | чтение |
| .data | 24 064 байт | 2.21 / 8.0 | чтение/запись |
| .rsrc | 4 692 480 байт | 5.55 / 8.0 | чтение |
| .pdata | 8 192 байт | 5.20 / 8.0 | чтение |
| .reloc | 2 048 байт | 5.19 / 8.0 | чтение |
В pe_headers.txt обнаружились импорты из python311.dll - прямое указание на версию интерпретатора. Среди них: PyImport_ImportFrozenModule, PyUnicode_AsUTF8, PyObject_GC_Del и ещё несколько десятков символов, однозначно читаемых без каких-либо дополнительных инструментов.
AnyDesk 7.1.6.0: нативный бинарник раскрывает подпись
Второй файл - совсем другая история. AnyDesk весом 3,81 МБ не имеет никакого отношения к Python-упаковщикам. Это полноценный нативный исполняемый файл. Здесь DeNuitkanizator отработал как PE-анализатор общего назначения.
Наиболее интересным оказался файл overlay.bin - данные, дописанные поверх PE-структуры. В HxD там читается цифровая подпись: сертификат выдан компанией DigiCert, одним из крупнейших мировых центров сертификации. Алгоритм подписи - RSA-4096 в связке с SHA-384. Это серьёзный уровень криптографической защиты, характерный для корпоративного ПО с широкой дистрибуцией.
Что в итоге: возможности и честные ограничения
Эксперимент доказал работоспособность связки. Без единого запуска IDA или Ghidra удалось извлечь строки, структуру PE, импортированные символы, дизассемблированный код с C-переводом и данные цифровой подписи. Это уже достаточный объём для первичного триажа файла.
Честно признаётся и главная слабость: Capstone - линейный дизассемблер, а не рекурсивный. Он не восстанавливает граф потока управления и генерирует мусор в тех местах, где код перемежается с данными. Часть мнемоник пока не поддерживается и остаётся в листинге как комментарии. Для глубокого анализа обфусцированного или упакованного кода этого недостаточно.
- Связка DeNuitkanizator + HxD покрывает первичный анализ PE-структуры и поиск артефактов
- Asm-To-C даёт читаемый C-псевдокод, но требует ручной фильтрации мусора
- Onefile-сборки с zstd-сжатием блокируют прямой поиск строк
- Нативные бинарники поддаются анализу в части PE-метаданных и оверлея
- Для полноценного реверсинга сложных целей классический стек по-прежнему незаменим
Вывод прагматичный: инструментарий реально работает как лёгкий разведчик перед основным разбором. Быстро, бесплатно, без громоздкой установки. Но заменить IDA Pro в сложных кейсах он пока не готов - и авторы эксперимента этого не скрывают.