使用说明
项目简介
Binary Ninja MCP Server 是一个 Binary Ninja 插件,它在 Binary Ninja 内部启动一个 HTTP 服务器,作为 MCP 服务器,对外提供了一系列 API 接口,可以将 Binary Ninja 的二进制分析能力暴露给 LLM 客户端,例如 Claude Desktop。通过这些接口,LLM 可以获取二进制文件的信息,执行反编译、重命名函数等操作,从而实现 AI 辅助的逆向工程工作流。
主要功能点
- 二进制文件信息查询: 获取二进制文件的状态、函数列表、类列表、段列表、导入导出表、命名空间、数据项等信息。
- 函数操作: 根据名称或地址查找函数,获取函数信息,反编译函数,重命名函数。
- 数据操作: 重命名数据项。
- 集成 Claude Desktop: 提供与 Claude Desktop 的无缝集成,可以使用自然语言指令调用 Binary Ninja 的功能。
安装步骤
- 安装 Binary Ninja: 确保已安装 Binary Ninja 软件。
- 克隆仓库: 使用 'git clone [email protected]:fosdickio/binary_ninja_mcp.git' 命令克隆仓库到本地。
- 安装依赖: 进入仓库目录,使用 'uv venv' 创建虚拟环境,然后使用 'uv pip install -e .' 安装插件依赖。
cd binary_ninja_mcp uv venv source .venv/bin/activate # macOS/Linux uv pip install -e . - 安装 Binary Ninja 插件: 将仓库 'plugins/binary_ninja_mcp' 目录下的 'binary_ninja_mcp' 文件夹复制到 Binary Ninja 的插件目录。插件目录通常位于 '~/.binaryninja/plugins/' (不同操作系统可能略有差异)。
服务器配置
对于 MCP 客户端 (例如 Claude Desktop),需要配置 MCP 服务器的启动命令。以下是 Claude Desktop 的配置示例,其他 MCP 客户端的配置方法类似。
在 Claude Desktop 的 'Settings > Developer > Edit Config' 中,添加以下 JSON 配置:
{ "mcpServers": { "binaryninja_mcp": { "command": "uv", "args": [ "--directory", "ABSOLUTE_PATH_TO_DIR/binary_ninja_mcp/src", // 请替换为 binary_ninja_mcp 仓库 src 目录的绝对路径 "run", "binja_mcp_bridge.py" ] } } }
配置参数说明:
- 'server name': 'binaryninja_mcp' (服务器名称,客户端用于识别和调用)
- 'command': 'uv' (启动命令,这里使用 'uv' 包管理器)
- 'args': 启动参数列表
- '--directory': 'ABSOLUTE_PATH_TO_DIR/binary_ninja_mcp/src' (指定工作目录为 'binary_ninja_mcp/src' 目录,请替换为实际的绝对路径)
- 'run': 'run' 命令表示运行 Python 脚本
- 'binja_mcp_bridge.py': 要运行的 Python 脚本为 'binja_mcp_bridge.py' (MCP 桥接脚本)
基本使用方法
- 启动 Binary Ninja 和 MCP Server: 打开 Binary Ninja,加载要分析的二进制文件。在 Binary Ninja 菜单栏中选择 'Plugins > MCP Server > Start MCP Server' 启动 MCP 服务器。
- 配置并启动 MCP 客户端: 配置 MCP 客户端连接到 Binary Ninja MCP Server。例如,对于 Claude Desktop,按照上述服务器配置步骤进行配置。启动 Claude Desktop 或其他 MCP 客户端。
- 使用 LLM 客户端进行交互: 在 LLM 客户端中,可以使用自然语言指令调用 Binary Ninja 的功能。例如,在 Claude Desktop 中,可以提问 "Decompile function main in Binary Ninja" 或 "Rename function sub_401000 to important_function in Binary Ninja"。
注意事项
- 确保 Binary Ninja MCP Server 插件已正确安装并启动。
- 确保 MCP 客户端配置的服务器启动命令和参数正确,工作目录和脚本路径需要替换为实际路径。
- Binary Ninja MCP Server 通过 HTTP 协议与 MCP 客户端通信,默认端口为 9009。
信息
分类
开发者工具