
ネイティブC++製のリバースエンジニアリングエンジン。PE/ELFバイナリ向けの逆アセンブル、逆コンパイル、解析パイプラインを備え、対話型GUIとGhidra互換の逆コンパイラを特徴とする。
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 は稼働状態にあります(CTest スイートは 78/78 すべて成功)。
現在の開発は、エンジンの機能を拡張し、バックエンドにすでに存在する機能を GUI に接続することに重点を置きつつ、Ghidra 12.1.3 の逆アセンブラ/デコンパイラとのパリティ監査で特定された残りのギャップを解消することに注力しています(PLAN/ を参照)。
このプロジェクトは Apache License 2.0 の下でライセンスされています。
Enigma が使用するサードパーティコンポーネントは、それぞれのライセンスの対象となります。