
Motor de ingeniería inversa en C++ nativo con canalización de desensamblado, descompilación y análisis para binarios PE/ELF, que incluye GUI interactiva y descompilador compatible con Ghidra.
Un motor de ingeniería inversa nativo en C++ inspirado en el pipeline de análisis de Ghidra.
Enigma elimina la dependencia de JVM y proporciona un núcleo de análisis independiente que puede integrarse, ampliarse y conectarse directamente con herramientas nativas y sistemas de IA.
Enigma está en desarrollo activo y ya cuenta con un pipeline de análisis funcional de extremo a extremo.
.gzf de GhidraEl pipeline principal es estable, y el trabajo actual se centra en ampliar la cobertura de funcionalidades, mejorar la integración motor/GUI y cerrar las brechas de capacidad restantes identificadas durante las pruebas de paridad con Ghidra 12.1.3.
Binary (PE / ELF)
│
▼
Binary Loader
│
▼
Capstone Disassembler
│
▼
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
| Componente | Fuente |
|---|---|
| Motor de descompilación | Biblioteca nativa de descompilación C++ de Ghidra |
| Especificaciones del procesador Sleigh | Ghidra |
| Modelo de programa | Implementación nativa en C++ de Enigma |
| Sistemas de tipos y memoria | Implementación nativa en C++ de Enigma |
| Pipeline de análisis | Implementación nativa en C++ de Enigma |
| Detección de funciones | Implementación nativa de Enigma |
| Cargadores de binarios | Implementación nativa de Enigma |
| Almacenamiento | Implementación nativa de Enigma |
| GUI | Implementación nativa en Qt6 |
Enigma utiliza componentes de Ghidra donde estos proporcionan la tecnología de análisis de bajo nivel requerida, mientras que la arquitectura del motor circundante se implementa de forma nativa en C++.
git clone https://github.com/adam-040/Enigma.git
cd Enigma/enigma-engine
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
Probado con binarios reales de Windows:
| Binario | Enigma | Ghidra | Recall |
|---|---|---|---|
notepad.exe | 623 | 498 | 98%+ |
shell32.dll | 30,233 | 30,993 | 97.55% |
kernel32.dll | 3,763 | ~3,800 | ~99% |
Enigma ya no es solo un núcleo de análisis prototipo. El pipeline nativo, la capa de almacenamiento, los sistemas de análisis y la GUI están operativos.
El desarrollo actual se centra en ampliar las capacidades del motor y conectar a la GUI la funcionalidad que ya existe en el backend, mientras se implementan las brechas restantes identificadas durante el análisis de paridad.
Este proyecto está licenciado bajo la Apache License 2.0.
Los componentes de terceros utilizados por Enigma permanecen sujetos a sus respectivas licencias.