一个受 Ghidra 分析流水线启发的原生 C++ 逆向工程引擎。
Enigma 移除了对 JVM 的依赖,并提供了一个独立的分析核心,可被嵌入、扩展,并直接与原生工具和 AI 系统集成。
Enigma 正在积极开发中,并且已经拥有一个可用的端到端分析流水线。
.gzf/.rep 导入路径halt_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 实现 |
| GUI | 原生 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 使用的第三方组件仍受其各自许可证的约束。