REA + Ghidra Toolkit について
REA + Ghidra Toolkit は、ネイティブ PE32 バイナリ、特に 32 ビット Delphi アプリを対象とする、許可済み静的解析の再利用可能な証拠重視ワークフローとツール群です。読み取り専用のインベントリや VMT ツール、ヘッドレス Ghidra エクスポート、記録用テンプレートを組み合わせ、追跡可能な分析を支援します。
主な機能
- 01再現可能な REA・Ghidra ワークフロー
- 02読み取り専用の PE32 インベントリ
- 03Delphi VMT と RTTI のガイド
- 04ヘッドレス Ghidra エクスポート補助
- 05分析・引き継ぎ用テンプレート
- 06付属ツールの合成テスト
活用シーン
- 01許可済み PE32 静的解析の開始
- 02インポート情報とバイナリ一覧の確認
- 03Delphi VMT 候補の検証
- 04後続セッション向けの調査記録
MCP 対応
このリポジトリは MCP Registry に登録されており、GitMCP を通じてリモートのストリーミング HTTP サーバーとして利用できます。README には MCP クライアントに公開する具体的なツールやリソースの記載はありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcpclaude mcp add --transport http ethanhunt1981-rea-ghidra-toolkit https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcp{"mcpServers":{"ethanhunt1981-rea-ghidra-toolkit":{"type":"http","url":"https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcp"}}}Cursor で開く{"servers":{"ethanhunt1981-rea-ghidra-toolkit":{"type":"http","url":"https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcp"}}}VS Code で開く{"mcpServers":{"ethanhunt1981-rea-ghidra-toolkit":{"type":"http","url":"https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcp"}}}{"mcpServers":{"ethanhunt1981-rea-ghidra-toolkit":{"serverUrl":"https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
REA + Ghidra Toolkit
REA と Ghidra を使った、ネイティブバイナリの許可を得た静的解析向けの、小規模で依存関係の少ないツールキットです。特定のターゲットの情報を集める場所ではなく、エージェントが再利用できるナレッジベースとして意図的に構築されています。
2 つのレイヤーで考える
- このリポジトリには、汎用的な手法、ツール、合成テストのみが含まれています。
- ターゲット固有の成果物、逆コンパイル結果、非公開の解析結果はすべて、非公開の解析プロジェクト内に保持してください。
適用対象
このツールキットは、Windows 上のネイティブなアンマネージ PE32 バイナリを対象としています。
- 従来型の32 ビット Delphi アプリケーション向けには、専用のガイダンスを用意しています(VMT / RTTI)。
- その他の PE32 コード(C/C++ コンポーネントなど)には、読み取り専用のインベントリーツールとヘッドレス Ghidra エクスポートを利用できます。
- 解析は静的解析のみです。調査結果として扱う前に、すべての主張を検証します。
対象外は、マネージドランタイム(.NET / Java)、PE32+ の 64 ビットイメージ(簡易パーサーは意図的に PE32 のみを対象としています)、デバッグのワークフローとしてのコード実行、または確かな法的許可がないターゲットです。
このツールキットの目的
毎回、同じリバースエンジニアリングのワークフローを一から作り直すことを避けるためのツールキットです。次のような疑問に答えます。
- PE / Delphi の解析を、追跡可能な形で始めるにはどうすればよいですか?
- 推論を事実として扱わずに、REA、Ghidra、小規模なローカルツールを組み合わせるにはどうすればよいですか?
- 後のセッションで作業を引き継げるように、結果をエクスポートして記録するにはどうすればよいですか?
- 後から判明する前に、早い段階で避けるべき間違いは何ですか?
リポジトリ構成
.
├── docs/
│ ├── workflow.md
│ ├── rea-ghidra.md
│ ├── delphi-pe32.md
│ ├── evidence.md
│ ├── troubleshooting.md
│ └── gitmcp.md
├── tools/
│ ├── pe32.py
│ ├── pe_inventory.py
│ └── delphi_vmt.py
├── ghidra/
│ └── scripts/ExportDecompilation.java
├── templates/
│ ├── analysis-log.md
│ └── handover.md
├── tests/
├── assets/
├── AGENTS.md
├── LICENSE
└── llms.txt
含まれる内容
| 分野 | 内容 | 次に読むとよいもの |
|---|---|---|
🧭 docs/ | 証拠を重視した、再現可能なワークフローと検証ルール | workflow.md |
🩺 tools/ | 読み取り専用の PE32 インベントリーツールと VMT ヘルパー | tools/pe_inventory.py |
🧰 ghidra/ | ヘッドレスエクスポート用ヘルパー | ExportDecompilation.java |
🫙 templates/ | 非公開の解析および引き継ぎ用テンプレート | templates/analysis-log.md |
🧪 tests/ | 依存関係の少ない合成テスト | tests/test_pe32.py |
クイックスタート
# From the repository root
python -m tools.pe_inventory "C:\analysis\program.exe"
python -m tools.pe_inventory "C:\analysis\program.exe" --imports --json
# Check a known VMT candidate
python -m tools.delphi_vmt "C:\analysis\program.exe" --vmt 0x00412340
# Heuristic search; always validate candidates in a disassembler
python -m tools.delphi_vmt "C:\analysis\program.exe" --scan
合成テストスイートを実行します。
python -m unittest discover -v
GitMCP
このリポジトリは、https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit と併用することを想定して設計されています。
また、公式の MCP Registry に io.github.ethanhunt1981/rea-ghidra-toolkit として登録されています(GitMCP 経由のストリーミング可能な HTTP。メタデータは server.json にあります)。
OpenCode/一般的なエージェントのセットアップ:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"rea-ghidra-toolkit": {
"type": "remote",
"url": "https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit"
}
}
}
}
OpenCode CLI コマンド:
opencode mcp add rea-ghidra-toolkit --global --url https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit
opencode mcp list
基本ルール
観察、推論、不明は、それぞれ異なるものです。 もっともらしい名前、文字列、VMT 候補があっても、動作の証明にはなりません。テンプレートは、セッションをまたいでもこの区別を明確に保つためのものです。
ライセンス
このリポジトリは MIT License の下でライセンスされています。このライセンスの対象は、含まれている方法論とツールのみです。オリジナルのバイナリ、対象固有の仕様、サードパーティの保護対象素材、非公開の解析結果は対象外です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。