用途
GhidrAssistMCP 为 Ghidra 提供原生 MCP 服务器扩展,作为 AI 分析工具与 Ghidra 逆向工程平台之间的桥梁。通过实现 Model Context Protocol,外部 AI 助手、自动化分析工具和自定义脚本可以以标准化 API 方式访问 Ghidra 的分析能力。
主要能力
- MCP 服务器集成:使用官方 SDK 实现完整 MCP 服务器。
- 双 HTTP 传输:支持 SSE 与 Streamable HTTP,以兼容更多客户端。
- 100 个显式工具:具有可发现的操作名称、精确输入契约和读/写注解,默认启用 93 个。
- 6 个 MCP 资源模板:针对程序信息、函数、字符串、导入、导出、段等提供程序特定数据资源。
- 7 个 MCP 提示:面向常见逆向工程任务的预置分析提示。
- 结果缓存、异步任务支持、多程序支持。
- MCP 在项目管理器打开时即启动,早于 CodeBrowser;所有 CodeBrowser 共享运行配置与有界请求日志。
- 多窗口支持:单一 MCP 服务器供所有 CodeBrowser 窗口共享,自动焦点跟踪并返回上下文提示。
- 可配置 UI、实时日志、动态工具管理(可单独启用/禁用并持久化设置)。
使用方式
环境要求
- Ghidra 12.0 或 12.1 Public,Java 25 或更新版本(扩展 ZIP 与所选 Ghidra 版本对应)。
- 一个 MCP 客户端(例如 GhidrAssist)。
二进制安装(推荐)
- 前往 Releases 页面下载最新 .zip 文件(例如 ghidra_12.1_PUBLIC_20261009_GhidrAssistMCP-3.0.0.zip)。
- 在 Ghidra 中:File → Install Extensions → Add Extension,选择下载的 ZIP 文件,按提示重启 Ghidra。
- 启动 Ghidra:MCP 运行时在项目管理器中自动启动;CodeBrowser 打开后获得共享的 MCP 视图。通过 Window → GhidrAssistMCP 配置或禁用服务器。
从源码构建
源码构建需要 Java 25 或更新版本,使用仓库内 Gradle wrapper。
- 克隆仓库:git clone <repository-url> 然后 cd GhidrAssistMCP。
- 设置 GHIDRA_INSTALL_DIR 环境变量,或运行 Gradle 时传 -PGHIDRA_INSTALL_DIR=<path>。
- 确保 Ghidra 未运行,执行:./gradlew installExtension。该命令将构建的 ZIP 复制到安装目录并解压到用户扩展目录。可用 -PGHIDRA_USER_EXTENSIONS_DIR=<path> 覆盖位置。
- 重启 Ghidra;若插件未出现,可在 File → Configure → Configure Plugins 搜索 "GhidrAssistMCP" 启用。
配置
打开控制面板:Window → GhidrAssistMCP。
- Host:默认 localhost
- Port:默认 8080
- 启用/禁用开关 Tool Management 标签可查看全部 100 个公开工具,用复选框单独启用/禁用,保存配置以持久化并实时监控工具状态。
无头模式
可通过 Ghidra 的 analyzeHeadless 启动器使用。导入二进制并以无头预脚本启动 MCP 服务器,或对已导入项目使用 -process。若希望分析完成后保持会话,可以后脚本配合 wait 模式运行。MCP 客户端可连接至 /mcp(推荐)、/sse 与 /message。无头服务器运行于 analyzeHeadless JVM 内并使用当前 currentProgram;可用 completion_file 控制干净关闭,也可通过 tool_profile=agent_lab 启用沙箱本地程序导出。
适用场景
- AI 辅助逆向工程:让 AI 助手通过 MCP 读取反汇编、函数身份与上下文,并执行受控的分析操作。
- 自动化分析:以标准化接口调用工具进行批量或流程化分析。
- 无头分析实验室:在无 CodeBrowser UI 的情况下提供 MCP 访问。
- 多程序与多窗口工作:同时处理多个已打开程序,Server 在所有 CodeBrowser 窗口间共享。
限制
- 需要 Java 25 或更新版本;扩展 ZIP 与 Ghidra 版本对应。
- MCP 服务器需要项目管理器保持打开;关闭所有 CodeBrowser 不会停止服务器。
- import_file、export_program 及五个脚本工具默认禁用,需在共享配置视图中手动启用。
- 部分项目操作要求 GUI 项目管理器;无头启动器管理自己的项目。
- 最新 MCP 修订版 2026-07-28 的完整支持取决于 Java SDK 下一主版本;当前使用 Java SDK 2.0.1。
- Streamable HTTP 位于 http://localhost:8080/mcp,支持协议 2025-11-25;旧版 SSE 使用协议 2024-11-05。
- 升级后客户端应刷新工具定义并重新连接。
- 具体价格与收费方式暂未提供。