项目简介

GhidraMCP Bridge 是一个 Ghidra 插件,它实现了 Model Context Protocol (MCP) 服务器,旨在桥接 Ghidra 强大的逆向工程能力和 AI 助手。通过这个插件,AI 模型可以连接到 Ghidra 并协助进行二进制分析任务,从而提高逆向工程的效率和可访问性。

主要功能点:

  • AI 驱动的二进制分析: 通过 Model Context Protocol (MCP) 将 AI 助手连接到 Ghidra。
  • 自然语言交互: 使用自然语言提问关于二进制文件的问题。
  • 代码深度洞察: 检索详细的函数信息和反编译代码。
  • 二进制结构分析: 探索导入、导出和内存布局。
  • 自动化安全分析: 获取 AI 辅助的关于潜在安全漏洞的见解。
  • 跨平台兼容性: 在 Ghidra 支持的所有平台上工作。

安装步骤:

  1. 前提条件:
    • Ghidra 11.0 或更高版本
    • Java 17 或更高版本
    • Python 3.8+ (用于桥接脚本)
  2. 下载插件:
    • Releases 页面下载最新版本的 ZIP 文件。
  3. 安装插件:
    • 打开 Ghidra。
    • 导航到 'File > Install Extensions'。
    • 点击 "+" 按钮并选择下载的 ZIP 文件。
    • 重启 Ghidra 以完成安装。
  4. 启用插件:
    • 前往 'File > Configure > Miscellaneous' 并勾选 "MCPServerPlugin" 旁边的复选框以启用插件。

服务器配置:

MCP 服务器插件在 Ghidra 启动时自动运行。为了让 MCP 客户端(例如 Claude)连接到 GhidraMCP 服务器,您需要配置客户端的 MCP 设置。以下是一个连接到 GhidraMCP 的 Claude 客户端配置示例:

{
  "mcpServers": {
    "ghidra": {
      "command": "python",
      "args": ["PATH-TO-REPO/GhidraMCP/ghidra_server.py"]
      // 请将 "PATH-TO-REPO/GhidraMCP/ghidra_server.py" 替换为 ghidra_server.py 脚本的实际路径
    }
  }
}

配置参数说明:

  • server name: 'ghidra' (服务器名称,可以自定义)
  • command: 'python' (启动桥接脚本的命令,假设您的 Python 环境已配置好)
  • args: '["PATH-TO-REPO/GhidraMCP/ghidra_server.py"]' (启动桥接脚本的参数,指向 'ghidra_server.py' 脚本的路径)

基本使用方法:

  1. 启动 Ghidra 和 MCP 服务器: 启用 GhidraMCP 插件后,当您打开 Ghidra 项目时,MCP 服务器会自动启动。您可以在 Ghidra 控制台中看到类似 "MCP Server started on port 8765" 的消息来确认服务器已启动。
  2. 启动桥接脚本: 根据 Claude 客户端配置,启动 'ghidra_server.py' 桥接脚本。
    python PATH-TO-REPO/GhidraMCP/ghidra_server.py
  3. 连接 AI 助手: 配置并启动您的 MCP 客户端(例如 Claude),客户端将通过桥接脚本与 GhidraMCP 服务器通信。
  4. 使用自然语言提问: 在 AI 助手中使用自然语言向 Ghidra 提出关于已加载二进制文件的问题,例如:
    • "这个二进制文件使用了哪些加密算法?"
    • "能否显示地址 0x401000 处函数的反编译代码?"
    • "这个恶意软件发出了哪些可疑的 API 调用?"

更多信息:

  • 默认情况下,GhidraMCP 服务器运行在 'localhost:8765'。
  • 您可以通过修改 'MCPServerPlugin.java' 文件来自定义服务器端口。
  • 您可以通过 'ghidra_server.py' 脚本中定义的工具和资源与 Ghidra 进行交互。

信息

分类

开发者工具