
Motore di reverse-engineering nativo in C++ con pipeline di disassemblaggio, decompilazione e analisi per binari PE/ELF, dotato di GUI interattiva e decompilatore compatibile con Ghidra.
Un motore di reverse-engineering nativo in C++ ispirato alla pipeline di analisi di Ghidra.
Enigma elimina la dipendenza dalla JVM e fornisce un core di analisi autonomo che può essere incorporato, esteso e integrato direttamente con strumenti nativi e sistemi di intelligenza artificiale.
Enigma è in fase di sviluppo attivo e dispone già di una pipeline di analisi end-to-end funzionante.
.gzf di GhidraLa pipeline principale è stabile e il lavoro attuale si concentra sull'espansione della copertura delle funzionalità, sul miglioramento dell'integrazione motore/GUI e sulla chiusura delle lacune residue emerse durante i test di parità con Ghidra 12.1.3.
Binario (PE / ELF)
│
▼
Binary Loader
│
▼
Capstone Disassembler
│
▼
Motore Pcode / Decompilatore
│
▼
Pipeline di Analisi
│
├── Rilevamento Funzioni
├── Recupero Tipi
├── Simboli
├── Riferimenti
└── Altre Analisi
│
▼
Modello del Programma
│
├── Funzioni
├── Simboli
├── Tipi
├── Memoria
└── Riferimenti
│
▼
Archiviazione
│
├── Snapshot FlatBuffers
├── Indice LMDB
└── Commit / branch simili a git
│
▼
GUI Qt
│
├── Disassembly
├── Decompiler
├── Vista Hex
├── CFG / Grafo delle Chiamate
└── Explorer
| Componente | Fonte |
|---|---|
| Motore del decompilatore | Libreria nativa C++ del decompilatore di Ghidra |
| Specifiche del processore Sleigh | Ghidra |
| Modello del programma | Implementazione nativa C++ di Enigma |
| Sistemi di tipi e memoria | Implementazione nativa C++ di Enigma |
| Pipeline di analisi | Implementazione nativa C++ di Enigma |
| Rilevamento funzioni | Implementazione nativa di Enigma |
| Binary loader | Implementazione nativa di Enigma |
| Archiviazione | Implementazione nativa di Enigma |
| GUI | Implementazione nativa Qt6 |
Enigma utilizza i componenti di Ghidra dove questi forniscono la tecnologia di analisi di basso livello richiesta, mentre l'architettura circostante del motore è implementata nativamente in 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
Testato su binari Windows reali:
| 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 non è più solo un core di analisi prototipale. La pipeline nativa, il livello di archiviazione, i sistemi di analisi e la GUI sono operativi.
Lo sviluppo attuale è focalizzato sull'espansione delle capacità del motore e sul collegamento alla GUI delle funzionalità già esistenti nel backend, implementando al contempo le lacune residue emerse durante l'analisi di parità.
Questo progetto è concesso in licenza sotto la Apache License 2.0.
I componenti di terze parti utilizzati da Enigma rimangono soggetti alle rispettive licenze.