symgraph/GhidrAssistMCP
An native MCP server extension for Ghidra
GhidrAssistMCP – 面向 Ghidra 的 AI 赋能桥接器
它是什么
GhidrAssistMCP 是一个 Ghidra 扩展,它在 Ghidra 应用程序内部运行一个 模型上下文协议(MCP)服务器。该服务器通过一个基于 HTTP 的简洁 API 暴露 Ghidra 的逆向工程功能(列出函数、获取反汇编、编辑注释、运行分析等),AI 助手或其他自动化工具可以调用这些功能。
为什么它对 AI/ML 很重要
- 标准化 API – 通过使用 MCP,外部基于 LLM 的助手(例如配套的 GhidrAssist 客户端)可以向 Ghidra 提问并接收结构化的 JSON 答案,而无需嵌入 Java 代码。
- 工具目录 – 定义了 100 个带有输入模式和读写注释的显式“工具”,使 LLM 能够轻松发现可用的操作以及如何调用它们。
- 异步与缓存 – 长时间运行的分析作为后台任务执行,结果会被缓存,这在 LLM 迭代优化查询时非常有用。
- 多程序与无头支持 – 该服务器既可在 GUI 中工作,也可在 Ghidra 的
analyzeHeadless模式下工作,因此 AI 流水线可以对许多二进制文件运行完全自动化的分析。
核心功能(如 README 中所述)
| 功能 | 作用 |
|---|---|
| MCP 服务器集成 | 实现官方 MCP Java SDK(v2.0.1),并暴露两种 HTTP 传输方式 – 服务器发送事件(SSE)和可流式 JSON 端点。 |
| 显式工具目录 | 100 个命名工具(默认启用 93 个),涵盖项目管理、程序检查、反汇编、反编译、注释、类型、分析选项等。 |
| 资源模板与提示 | 为程序元数据、函数、字符串、导入/导出和段预定义了 MCP 资源;还有 7 个现成的分析提示,用于常见的逆向工程任务。 |
| 结果缓存与异步任务 | 重复查询命中缓存;长时间运行的操作返回一个任务 ID,可以轮询或取消。 |
| 多程序与焦点感知 | 处理多个打开的程序,自动使用具有焦点的程序窗口,并允许客户端指定 program_name。 |
| 共享运行时与 UI | 一个服务器实例由 Ghidra 项目管理器拥有;每个 CodeBrowser 窗口都有一个共享配置和日志的视图。 |
| 无头模式 | 可以从 analyzeHeadless 启动,因此 AI 流水线可以在没有 GUI 的情况下与 Ghidra 交互。 |
| 可配置 UI | 一个 Ghidra 窗口(Window → GhidrAssistMCP)允许用户启用/禁用工具、更改主机/端口,并查看实时请求/响应日志。 |
你将如何使用它
- 安装 扩展(ZIP),通过 Ghidra 中的 File → Install Extensions(需要 Ghidra 12.0/12.1 和 Java 25+)。
- 启动 Ghidra – 当项目管理器打开时,MCP 服务器会自动启动。
- 配置 主机/端口(如果需要),并启用你想要的工具。
- 从任何兼容 MCP 的客户端(例如配套的 GhidrAssist UI 或自定义脚本)调用工具:
服务器会回复一个 JSON 函数列表。{"method":"tools/call","params":{"name":"list_functions","arguments":{"program_name":"/binaries/example"}}} - 无头运行 – 使用 Ghidra 的
analyzeHeadless启动器,配合一个启动服务器的预脚本,然后让外部 AI 服务查询端点(/mcp或/sse)。
谁可能受益?
- 安全研究人员 构建基于 LLM 的二进制分析助手。
- 自动化流水线 需要程序级信息(函数、控制流图、反编译),而无需嵌入 Ghidra 的 Java API。
- 教育工具 让学生通过基于 LLM 的 Web UI 探索逆向工程。
限制与注意事项(来自文档)
- 服务器在单个端口(默认 8080)上运行;该端口必须空闲。
- 出于安全考虑,某些强大的操作(
import_file、export_program、脚本执行)默认被禁用。 - 该扩展依赖于 MCP Java SDK 2.0.1;较新的 MCP 修订版可能需要更新的 SDK。
- 在无头模式下,服务器仅在 JVM 运行时保持活动;可以使用
completion_file来干净地关闭它。
以上所有信息均直接来自仓库的 README;没有推断任何额外功能。
SUMMARY: GhidrAssistMCP 是一个 Ghidra 扩展,它运行一个模型上下文协议(MCP)服务器,通过 HTTP/SSE 暴露 100 个逆向工程工具(反汇编、反编译、分析等)。它允许 AI 助手或自动化脚本使用标准化的 JSON API 查询和控制 Ghidra——无论是在 GUI 中还是在无头模式下。
TITLE: AI 就绪的 MCP 服务器,将 Ghidra 转变为可编程分析服务
相关
- 项目
- 项目
- 项目
- 项目
- 项目