关于 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检查导入项与二进制清单
- 03验证 Delphi 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 对原生二进制文件进行授权静态分析。它刻意构建为可复用的 Agent 知识库,而不是针对某个特定目标的资料堆放处。
分为两层来考虑
- 此仓库仅包含通用方法、工具和合成测试。
- 每个特定目标的制品、反编译结果或私有结果都保留在私有分析项目中。
适用范围
该工具包面向 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 / 典型 Agent 配置:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"rea-ghidra-toolkit": {
"type": "remote",
"url": "https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit"
}
}
}
}
OpenCode 命令行命令:
opencode mcp add rea-ghidra-toolkit --global --url https://gitmcp.io/ethanhunt1981/rea-ghidra-toolkit
opencode mcp list
核心原则
观察、推断和未知是三种不同的状态。 看似合理的名称、字符串或 VMT 候选项,还不能证明其行为。使用这些模板,是为了在不同会话中始终明确区分这三者。
许可证
此仓库采用 MIT 许可证。该许可证仅涵盖其中包含的方法论和工具,不涵盖原始二进制文件、特定目标的规范、第三方受保护材料或私有分析结果。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。