
Нативный C++ движок для reverse-engineering с конвейером дизассемблирования, декомпиляции и анализа PE/ELF-бинарников, включающий интерактивный GUI и декомпилятор, совместимый с Ghidra.
Нативный движок обратной разработки на C++, вдохновлённый конвейером анализа Ghidra.
Enigma устраняет зависимость от JVM и предоставляет автономное ядро анализа, которое можно встраивать, расширять и напрямую интегрировать с нативными инструментами и системами ИИ.
Enigma находится в активной разработке и уже имеет функциональный сквозной конвейер анализа.
.gzf/.rephalt_baddata на всех фикстурах)Основной конвейер стабилен (78/78 наборов CTest проходят успешно), а текущая работа сосредоточена на расширении покрытия функций, улучшении интеграции движка и GUI и закрытии оставшихся пробелов в возможностях, выявленных в ходе тестирования паритета с Ghidra 12.1.3.
Binary (PE / ELF / Mach-O / COFF)
│
▼
Binary Loader
│
▼
Capstone + SLEIGH Disassembly
│
▼
Pcode / Decompiler Engine
│
▼
Analysis Pipeline
│
├── Function Detection
├── Type Recovery
├── Symbols
├── References
└── Other Analyses
│
▼
Program Model
│
├── Functions
├── Symbols
├── Types
├── Memory
└── References
│
▼
Storage
│
├── FlatBuffers snapshots
├── LMDB index
└── Git-like commits / branches
│
▼
Qt GUI
│
├── Disassembly
├── Decompiler
├── Hex View
├── CFG / Call Graph
└── Explorers
| Компонент | Источник |
|---|---|
| Движок декомпилятора | Нативная библиотека декомпилятора Ghidra на C++ |
| Спецификации процессоров Sleigh | Ghidra |
| Модель программы | Нативная реализация Enigma на C++ |
| Системы типов и памяти | Нативная реализация Enigma на C++ |
| Конвейер анализа | Нативная реализация Enigma на C++ |
| Обнаружение функций | Нативная реализация Enigma |
| Загрузчики бинарных файлов | Нативная реализация Enigma (PE/ELF/Mach-O/COFF) |
| Хранилище | Нативная реализация Enigma |
| Графический интерфейс | Нативная реализация на Qt6 |
Enigma использует компоненты Ghidra там, где они предоставляют необходимую низкоуровневую технологию анализа, в то время как окружающая архитектура движка реализована нативно на C++.
flatcgit clone https://github.com/adam-040/Enigma.git
cd Enigma/Enigma-Engine
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure
Enigma больше не является лишь прототипом аналитического ядра. Нативный конвейер, слой хранения, аналитические системы и GUI работают (78/78 наборов CTest проходят успешно).
Текущая разработка сосредоточена на расширении возможностей движка и подключении функциональности, уже существующей в бэкенде, к GUI, а также на закрытии оставшихся пробелов, выявленных в ходе аудитов паритета дизассемблера/декомпилятора Ghidra 12.1.3 (см. PLAN/).
Этот проект распространяется под лицензией Apache License 2.0.
Сторонние компоненты, используемые Enigma, остаются под действием их соответствующих лицензий.