BinDiff MCP工具
一种模型上下文协议(MCP)服务器,通过以下方式提供二进制比较功能 IDA Pro 和 反汇编工具.
特性
- 比较二进制文件:比较两个二进制文件(例如,原始文件与修补文件)。
- 功能分析:获取相似性摘要和更改功能列表。
- 无头操作:在无头模式下使用IDA Pro,在自动化中使用IDAPython。
安装
先决条件
- Python 3.10+
- IDA Pro (9.0+推荐)
- 反汇编工具 (已安装并能够从命令行运行)。
- 紫外线 (建议用于包管理)。
在Linux(Ubuntu/Debian)上安装BinDiff
- 下载最新
.deb包装(例如。,bindiff_8_amd64.deb)从 官方发布. - 使用dpkg安装:
sudo dpkg -i bindiff_8_amd64.deb- 验证安装:
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)。
安装
- 克隆此存储库。
- 使用安装依赖项
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 8001macOS:
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:配置处理。
