clearbluejar/pyghidra-mcp

Python Command-Line Ghidra MCP

解决的问题

pyghidra-mcp 使 AI 智能体和 LLM 能够与强大的软件逆向工程 (SRE) 套件 Ghidra 进行交互。它解决了复杂二进制分析工具与 LLM 生态系统之间的鸿沟,允许智能体在无需人工手动操作 GUI 的情况下,自动执行深层逆向工程任务、执行语义代码搜索并管理 Ghidra 项目。

工作原理

该项目实现了一个 Model Context Protocol (MCP) 服务器,通过 pyghidrajpype 将 Ghidra 的 Program 和 FlatProgram API 连接到 Python。它提供两种主要的运行模式:

  • Headless Mode(无界面模式):用于自动化和 CI 流水的 CLI 驱动方式。
  • GUI Mode(图形界面模式):启动 Ghidra GUI,允许 MCP 服务器共享实时程序状态并在同一个 JVM 中控制 CodeBrowser。

它使用 ChromaDB 进行向量嵌入,从而实现对反编译函数、注释和符号的语义搜索。它支持多种传输层,包括用于本地主机的 stdio 和用于共享、长时间运行项目的 streamable-http

适用对象

  • 安全研究人员:希望使用 AI 智能体进行二进制文件分类或自动执行重复性逆向工程任务的人员。
  • 软件工程师:希望将二进制分析集成到 CI/CD 流水线中的人员。
  • AI 智能体开发者:正在构建需要对已编译二进制文件有深入结构化知识的工具的人员。

亮点

  • 语义代码搜索:使用向量嵌入对伪 C 代码进行模糊查找。
  • 智能体优化:具有精简的工具描述和集中的数据返回,以最大限度地减少 Token 使用量。
  • 双模式运行:同时支持完全的无界面自动化和实时 GUI 同步。
  • 批量操作:允许在单次调用中反编译多个函数或列出交叉引用,以减少 LLM 的往返次数。
  • 灵活的传输方式:支持 stdiostreamable-http 和 SSE,以满足各种客户端需求。

相关

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