一个受 Ghidra 分析流水线启发的原生 C++ 逆向工程引擎。
Enigma 去除了 JVM 依赖,提供了一个独立的分析核心,可直接嵌入、扩展并与原生工具及 AI 系统集成。
Enigma 正处于积极开发阶段,目前已具备功能完整的端到端分析流水线。
.gzf 导入路径核心流水线已稳定,当前工作重点是扩展功能覆盖范围、改进引擎/GUI 集成,并弥补在 Ghidra 12.1.3 对等测试中发现的剩余能力差距。
二进制文件 (PE / ELF)
│
▼
二进制加载器
│
▼
Capstone 反汇编器
│
▼
Pcode / 反编译引擎
│
▼
分析流水线
│
├── 函数检测
├── 类型恢复
├── 符号
├── 引用
└── 其他分析
│
▼
程序模型
│
├── 函数
├── 符号
├── 类型
├── 内存
└── 引用
│
▼
存储
│
├── FlatBuffers 快照
├── LMDB 索引
└── 类似 git 的提交 / 分支
│
▼
Qt GUI
│
├── 反汇编
├── 反编译器
├── 十六进制视图
├── CFG / 调用图
└── 浏览器
Enigma 在 Ghidra 组件提供所需底层分析技术的场景下使用它们,而外围引擎架构则使用 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
针对真实 Windows 二进制文件进行测试:
Enigma 不再只是一个原型分析核心。原生流水线、存储层、分析系统和 GUI 均已可运行。
当前开发重点是扩展引擎能力并将后端已存在的功能连接到 GUI,同时实现对等分析中发现的剩余差距。
本项目采用 Apache License 2.0 许可证。
Enigma 使用的第三方组件仍受其各自许可证的约束。
| 组件 | 来源 |
|---|
| 反编译引擎 | Ghidra 原生 C++ 反编译器库 |
| Sleigh 处理器规范 | Ghidra |
| 程序模型 | 原生 Enigma C++ 实现 |
| 类型和内存系统 | 原生 Enigma C++ 实现 |
| 分析流水线 | 原生 Enigma C++ 实现 |
| 函数检测 | 原生 Enigma 实现 |
| 二进制加载器 | 原生 Enigma 实现 |
| 存储 | 原生 Enigma 实现 |
| GUI | 原生 Qt6 实现 |
| 二进制文件 | Enigma | Ghidra | 召回率 |
|---|
notepad.exe | 623 | 498 | 98%+ |
shell32.dll | 30,233 | 30,993 | 97.55% |
kernel32.dll | 3,763 | ~3,800 | ~99% |