
Moteur de rétro-ingénierie natif en C++ avec pipeline de désassemblage, décompilation et analyse pour les binaires PE/ELF, doté d'une interface graphique interactive et d'un décompilateur compatible Ghidra.
Un moteur de rétro-ingénierie natif en C++ inspiré du pipeline d'analyse de Ghidra.
Enigma supprime la dépendance à la JVM et fournit un cœur d'analyse autonome qui peut être embarqué, étendu et intégré directement aux outils natifs et aux systèmes d'IA.
Enigma est en développement actif et dispose déjà d'un pipeline d'analyse de bout en bout fonctionnel.
.gzf de GhidraLe pipeline principal est stable, et les travaux actuels se concentrent sur l'élargissement de la couverture fonctionnelle, l'amélioration de l'intégration moteur/interface graphique et la réduction des écarts de capacités restants identifiés lors des tests de parité avec Ghidra 12.1.3.
Binaire (PE / ELF)
│
▼
Chargeur de binaires
│
▼
Désassembleur Capstone
│
▼
Moteur Pcode / Décompilateur
│
▼
Pipeline d'analyse
│
├── Détection de fonctions
├── Récupération de types
├── Symboles
├── Références
└── Autres analyses
│
▼
Modèle de programme
│
├── Fonctions
├── Symboles
├── Types
├── Mémoire
└── Références
│
▼
Stockage
│
├── Instantanés FlatBuffers
├── Index LMDB
└── Commits / branches de type git
│
▼
Interface graphique Qt
│
├── Désassemblage
├── Décompilateur
├── Vue hexadécimale
├── CFG / Graphe d'appels
└── Explorateurs
| Composant | Source |
|---|---|
| Moteur de décompilation | Bibliothèque native C++ de décompilateur de Ghidra |
| Spécifications du processeur Sleigh | Ghidra |
| Modèle de programme | Implémentation native C++ d'Enigma |
| Systèmes de types et de mémoire | Implémentation native C++ d'Enigma |
| Pipeline d'analyse | Implémentation native C++ d'Enigma |
| Détection de fonctions | Implémentation native d'Enigma |
| Chargeurs de binaires | Implémentation native d'Enigma |
| Stockage | Implémentation native d'Enigma |
| Interface graphique | Implémentation native Qt6 |
Enigma utilise les composants de Ghidra là où ils fournissent la technologie d'analyse de bas niveau requise, tandis que l'architecture du moteur environnant est implémentée nativement 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
Testé sur de vrais binaires Windows :
| Binaire | Enigma | Ghidra | Rappel |
|---|---|---|---|
notepad.exe | 623 | 498 | 98 %+ |
shell32.dll | 30 233 | 30 993 | 97,55 % |
kernel32.dll | 3 763 | ~3 800 | ~99 % |
Enigma n'est plus seulement un cœur d'analyse prototype. Le pipeline natif, la couche de stockage, les systèmes d'analyse et l'interface graphique sont opérationnels.
Le développement actuel se concentre sur l'élargissement des capacités du moteur et la connexion à l'interface graphique des fonctionnalités déjà présentes dans le backend, tout en implémentant les écarts restants identifiés lors de l'analyse de parité.
Ce projet est sous licence Apache License 2.0.
Les composants tiers utilisés par Enigma restent soumis à leurs licences respectives.