Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Enigma- — Réimplémentation en C++ du cœur analytique de Ghidra sans dépendances JVM, offrant une analyse binaire embarquable, les fondations Pcode/Sleigh et des interfaces prêtes pour l'IA pour le reverse engineering. | Kitploit
Outils/GitHubGitHub/gmh5225/enigma-
Analyse StatiqueAnalyse de CodeAnalyse Dynamique de Code (DAST)Rétro-ingénierieUtilitaires et FrameworksAnalyse de BinairesRétro-Ingénierie Assistée par IASécurité de l'IA
GitHubgmh5225/enigma-

Enigma-

Réimplémentation en C++ du cœur analytique de Ghidra sans dépendances JVM, offrant une analyse binaire embarquable, les fondations Pcode/Sleigh et des interfaces prêtes pour l'IA pour le reverse engineering.

14il y a 3 moisPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Enigma

Réimplémentation en C++ du cœur analytique de Ghidra (SoftwareModeling + Utility), dépouillé des dépendances Java/JVM. Conçu pour l'intégration IA, la performance et l'intégrabilité. Fait partie du projet Enigma Engine.

Enigma Engine

Une réimplémentation en C++ du cœur analytique de Ghidra — pas de JVM, pas de Java, contrôle total.


Qu'est-ce que c'est ?

Ghidra est un puissant framework de rétro-ingénierie développé par la NSA en Java. Enigma est une réécriture complète de son cœur analytique en C++ moderne, conçue pour être :

  • Intégrable — liez-la comme bibliothèque dans n'importe quel projet
  • Prête pour l'IA — interfaces propres pour l'intégration ML/IA
  • Rapide — pas de surcoût JVM, disposition mémoire native
  • Modifiable — chaque fichier vous appartient, à modifier, étendre ou remplacer

Ce n'est pas une sortie de transpileur Java-vers-C++. Chaque fichier est traduit et vérifié manuellement, avec une couverture de tests complète.


Pourquoi ?

La base de code Java de Ghidra est mature mais difficile à étendre dans certaines directions :

ProblèmeRéponse d'Enigma
Démarrage JVM + surcoût du GCC++ natif, zéro runtime
Difficile à intégrer dans des projets non-JavaBibliothèque statique/partagée
L'intégration IA nécessite des ponts JNIAPI C++ directe
Système de plugins monolithiqueComposants modulaires et remplaçables

État actuel

Développement actif — la fondation analytique est stable et testée.

Le système de types de base, le modèle d'adresses, les interfaces mémoire, le framework de paramètres et les fondations Pcode/Sleigh sont implémentés et passent les tests. Le projet suit un ordre de traduction strict de bas en haut : aucun module n'est ajouté tant que toutes ses dépendances ne sont pas en place et vérifiées.

Système de build : CMake + Ninja + CTest — zéro avertissement, tous les tests passent.


Architecture

Enigma reflète la structure interne des packages de Ghidra, traduite en namespaces C++ :

root@kitploit:~
include/ghidra/
├── [Address system]     Address, AddressSpace, AddressFactory, AddressRange
├── [Data types]         DataType, Structure, Union, Enum, Pointer,
│                        Array, TypeDef, FunctionDefinition, ...
├── [Memory]             MemBuffer, MemoryBlock, Memory, ByteProvider
├── [Settings]           Settings + full SettingsDefinition hierarchy
├── [Pcode / Sleigh]     PcodeOp, Varnode, SleighLanguage, SequenceNumber
└── [Utilities]          MathUtilities, DataConverter, Msg, TaskMonitor, ...

src/
└── [.cpp implementations for complex classes]

Décisions de conception clés :

  • Java interface → C++ abstract class avec méthodes virtual pures
  • Java ArrayList / HashMap → std::vector / std::unordered_map
  • Retours null Java → std::optional<T>
  • Génériques Java → templates C++
  • Address fusionné de l'interface + implémentation en un seul type valeur (évite l'allocation sur le tas)
  • Pointeurs bruts utilisés uniquement pour les références non-propriétaires ; la propriété est toujours explicite

Périmètre

Enigma est un remplacement complet de Ghidra — chaque composant existant en Java aura un équivalent C++, y compris l'interface utilisateur, le système de plugins, le désassembleur, le décompilateur et le moteur de scripts.

L'objectif actuel est le cœur analytique — la fondation sur laquelle tout le reste se construit. Une fois qu'il sera solide et testé, les couches restantes (GUI, chargeurs, plugins d'analyse, scripting) suivront dans l'ordre.

Rien n'est définitivement exclu. Tout est une question de priorité.


Compilation

Prérequis

  • Compilateur C++17 (g++ 11+ ou clang++ 13+)
  • CMake 3.20+
  • Ninja (recommandé)

Étapes

root@kitploit:~
git clone https://github.com/adam-040/Enigma.git
cd Enigma
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

Feuille de route

Court terme

  • Moteur de langage Sleigh complet (chargement .sla / .pspec)
  • PcodeEmitter — générer du Pcode à partir d'instructions brutes
  • BasicBlock + ControlFlowGraph
  • Intégration de Capstone pour le désassemblage (x86, ARM, RISC-V)

Moyen terme

  • Intégration de LIEF pour le chargement de binaires (ELF, PE, Mach-O)
  • Table de symboles + récupération de types
  • IR du décompilateur (High Pcode)

Intégration IA

  • Surface d'API C++ propre pour les modèles ML
  • Inférence de signature de fonction
  • Suggestion de nom / type de variable
  • Intégration de LLM local (aucune dépendance au cloud)

Nom du projet

Enigma — nommé d'après la machine de chiffrement de la Seconde Guerre mondiale, cassée par rétro-ingénierie. Ça semblait approprié.


Licence

Ce projet est une traduction de Ghidra, qui est sous licence Apache License 2.0.

Enigma est distribué sous la même licence. Voir LICENSE pour plus de détails.


Liens connexes

  • Ghidra (NSA) — le projet Java original
  • Capstone — moteur de désassemblage (intégration prévue)
  • LIEF — analyse de binaires (intégration prévue)
Télécharger l’outil