clearbluejar/pyghidra-mcp

Python Command-Line Ghidra MCP

解决的问题

pyghidra-mcp 在 Ghidra 软件逆向工程 (SRE) 套件与模型上下文协议 (MCP) 之间架起桥梁,允许基于 LLM 的代理和 AI 工具以程序化方式与 Ghidra 的分析功能交互。它通过让 AI 代理能够查询反编译代码、搜索符号并自动化逆向工程工作流程,解决了手动执行深度二进制分析的问题。

运作方式

该项目使用 pyghidra 和 jpype 将 Python 连接到 Ghidra 基于 Java 的 ProgramAPI 和 FlatProgramAPI,并将这些功能公开为 MCP 工具。服务器可在两种主要模式下运行:

  • Headless 模式:用于自动化和 CI/CD 流水线的 CLI 驱动服务器。
  • GUI 模式:启动 Ghidra GUI (CodeBrowser) 并共享实时程序状态,允许 AI 代理引导 GUI,或让用户实时查看 AI 驱动的变更。

它还使用 ChromaDB 的向量嵌入实现了语义代码搜索,允许对反编译函数和符号进行模糊查询。

目标受众

  • 逆向工程师:希望使用 LLM 自动化重复性分析任务的人员。
  • 安全研究人员:执行大规模二进制分类和恶意软件分析的专业人士。
  • AI 代理开发者:为软件安全和漏洞研究构建自主代理的开发者。

特色亮点

  • 双重操作模式:支持 Headless 自动化与实时 GUI 集成。
  • 语义搜索:使用 ChromaDB 进行伪 C 代码和符号的向量模糊搜索。
  • 代理优化:具备精简的工具描述和聚焦的数据回传,以最小化 Token 使用量。
  • 灵活传输:支持 streamable-http (推荐)、stdio 和 SSE,适用于各种 MCP 主机集成。
  • 项目级分析:支持在单一 Ghidra 项目中同时进行多个二进制文件的逆向工程。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目