二进制比较工具

BinDiff MCP Tool 是一个基于 IDA Pro 和 BinDiff 的二进制比较工具,提供二进制文件比较、函数分析和自动化操作功能。

  • by u21h2
  • Python
  • 混合部署
  • 2 星标
  • 更新于
在 GitHub 查看 u21h2/bindiff-mcp

使用说明

BinDiff MCP工具

一种模型上下文协议(MCP)服务器,通过以下方式提供二进制比较功能 IDA Pro 和 反汇编工具.

特性

  • 比较二进制文件:比较两个二进制文件(例如,原始文件与修补文件)。
  • 功能分析:获取相似性摘要和更改功能列表。
  • 无头操作:在无头模式下使用IDA Pro,在自动化中使用IDAPython。

安装

先决条件

  • Python 3.10+
  • IDA Pro (9.0+推荐)
  • 反汇编工具 (已安装并能够从命令行运行)。
  • 紫外线 (建议用于包管理)。

在Linux(Ubuntu/Debian)上安装BinDiff

  1. 下载最新 .deb 包装(例如。, bindiff_8_amd64.deb)从 官方发布.
  2. 使用dpkg安装:
    sudo dpkg -i bindiff_8_amd64.deb
    
  3. 验证安装:
    which bindiff
    

平台特定配置

该工具尝试自动检测IDA和BinDiff。您可以通过设置环境变量或编辑来覆盖这些变量 src/config.py.

macOS

  • IDA Pro:9.1(推荐)或9.0+。
  • 反汇编工具:通过安装程序安装。
  • 环境:
    • IDADIRIDA安装路径(例如。, /Applications/IDA91/IDA Professional 9.1.app/Contents/MacOS).
    • BINDIFF_PATH:路径 bindiff 二进制(例如。, /usr/local/bin/bindiff).

Linux(Ubuntu等)

  • IDA Pro:9.0+已安装(例如 /opt/idapro-9.1).
  • 反汇编工具:已安装且可访问。
  • 环境:
    • IDADIR: 必需。设置为IDA安装基本目录,其中包含 libidalib.so (例如。, /opt/idapro-9.1).
    • BINDIFF_PATH:路径 bindiff 可执行(默认检查 $PATH).
    • 确保 idalib 存在于 $IDADIR/idalib.

配置

环境变量

  • IDADIR:IDA Pro安装目录的路径(包含 idat 和 idalib).
  • BINDIFF_PATH:通往 bindiff 可执行。
  • MCP_TIMEOUT:分析步骤的超时时间(秒)(默认值:3600)。

安装

  1. 克隆此存储库。
  2. 使用安装依赖项 uv:
    uv sync
    

用法

远程运行(SSE)-推荐

以SSE模式启动服务器,以便远程或本地客户端可以通过HTTP访问:

Linux(Docker/服务器):

IDADIR=/app/ida-pro-9.1 BINDIFF_PATH=/usr/bin/bindiff uv run bindiff-mcp --transport sse --host 0.0.0.0 --port 8001

macOS:

IDADIR="/Applications/IDA91/IDA Professional 9.1.app/Contents/MacOS" BINDIFF_PATH=/usr/local/bin/bindiff uv run bindiff-mcp --transport sse --host 0.0.0.0 --port 8001

客户端配置(反重力、克劳德桌面等)

配置您的MCP客户端以通过 /sse 端点:

{
  "mcpServers": {
    "bindiff-mcp": {
      "type": "remote",
      "url": "http://127.0.0.1:8001/sse"
    }
  }
}

发展

  • 结构:
    • src/server.py:主MCP服务器入口点。
    • src/core/:IDA导出、BinDiff执行和解析的核心逻辑。
    • src/config.py:配置处理。