nightwing-us/mcpyghidra

GitHub: nightwing-us/mcpyghidra

将 Ghidra 的逆向工程能力通过 MCP 协议暴露给 LLM 客户端,实现 AI 辅助的二进制分析。

Stars: 2 | Forks: 0

# MCPyGhidra 一个将 [Ghidra](https://ghidra-sre.org/) 的 逆向工程能力暴露给 LLM 客户端的 MCP (Model Context Protocol) 服务器。基于 [pyghidra-decaf](https://github.com/nightwing-us/pyghidra-decaf) 构建。 MCPyGhidra 通过 MCP 暴露二进制分析能力:反编译、反汇编、符号查找、交叉引用、类型检查、二进制修补以及可脚本化分析。 ## 前置条件 - **Ghidra** 较新的版本(已使用 Ghidra 11.x+ 测试;[下载](https://ghidra-sre.org/)) - **Java** 兼容的 JDK(随 Ghidra 一起提供) - **Python** 3.10–3.13 - **pyghidra-decaf**(通过 PyPI 与 mcpyghidra 一起安装) ## 安装说明 ``` pip install mcpyghidra ``` 然后配置你的 Ghidra 安装路径: ``` export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0_PUBLIC ``` 有关详细的设置,请参阅 [docs/installation.md](docs/installation.md)。 ## 快速开始 ### Headless 模式 以 headless 模式启动 MCP 服务器进行非交互式分析: ``` export GHIDRA_INSTALL_DIR=/path/to/ghidra mcpyghidra-headless --binary /path/to/firmware.elf ``` 服务器将向 stdout 打印 JSON 就绪信号: ``` {"status": "ready", "host": "127.0.0.1", "port": 6050, "binary": "/path/to/firmware.elf"} ``` 然后将你的 MCP 客户端配置为连接到 `http://127.0.0.1:6050/mcp`。 ### 配合 MCP 客户端使用 将任何兼容 MCP 的客户端指向正在运行的服务器: ``` { "mcpServers": { "ghidra": { "type": "streamable-http", "url": "http://127.0.0.1:6050/mcp" } } } ``` 有关特定客户端的示例,请参阅 [docs/mcp-client-config.md](docs/mcp-client-config.md)。 ## 暴露的功能 MCPyGhidra 暴露了 26 个工具,分为以下几个类别: - **列表与上下文:** 列出入口、检查二进制元数据、解析函数 - **分析:** 反编译、反汇编、交叉引用、控制流图 - **类型:** 类型枚举和详细检查 - **修改:** 重命名符号、更新变量、设置注释、修补指令 - **脚本:** 带有回传客户端 RPC 回调的 Python 代码执行 - **搜索:** 二进制模式和指令序列匹配 完整详情请参阅 [docs/tools-reference.md](docs/tools-reference.md)。 ## 故障排除 - **`GHIDRA_INSTALL_DIR not set`** — 将其指向你的 Ghidra 安装路径:`export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0_PUBLIC`。 - **客户端无法连接** — 确认服务器正在运行,并且可以通过 Streamable HTTP 端点 `http://127.0.0.1:6050/mcp` 访问。 - **服务器启动挂起** — 分析大型二进制文件可能需要几分钟;尝试使用一个小型二进制文件(例如 `mcpyghidra-headless --binary /bin/ls`)来验证设置。 完整的故障排除指南请参阅 [docs/installation.md](docs/installation.md) 和 [docs/quickstart.md](docs/quickstart.md)。 ## 文档 - [安装与设置](docs/installation.md) - [快速入门指南](docs/quickstart.md) - [连接 MCP 客户端](docs/mcp-client-config.md) - [工具参考](docs/tools-reference.md) - [运行模式 (Headless 与 GUI)](docs/quickstart.md) - [RPC 回调(高级)](docs/specs/rpc-callbacks.md) - [文档中心](docs/index.md) ## 开发说明 本项目使用 `uv` 进行环境和包管理。 ### 环境设置 ``` curl -sSf https://astral.sh/uv/install.sh | bash git clone https://github.com/nightwing-us/mcpyghidra.git cd mcpyghidra uv venv uv pip install -e ".[dev]" ``` ### 测试 ``` uv run pytest --tb=short ``` ### 类型检查 ``` uv run mypy ``` ### Lint 检查 ``` uv run ruff check src tests uv run ruff format src tests ``` ## 相关项目 MCPyGhidra 和 MCPyIDA 作为姐妹项目并行维护,旨在实现功能对等 —— MCPyGhidra 针对 Ghidra,而 MCPyIDA 针对 IDA Pro。 - [MCPyIDA](https://github.com/nightwing-us/mcpyida) — 针对 IDA Pro 的等效 MCP 服务器 - [pyghidra-decaf](https://github.com/nightwing-us/pyghidra-decaf) — 原生 Python 的 Ghidra 插件开发框架(支撑 MCPyGhidra) ## 许可证 Apache-2.0 — 详情请参阅 [LICENSE](LICENSE)。 版权所有 © 2026 Nightwing Group, LLC.
标签:Amass, DLL 劫持, Findomain, Ghidra, JS文件枚举, MCP服务器, URL提取, 二进制分析, 云安全运维, 云资产清单, 反编译, 大语言模型, 逆向工具, 逆向工程