使用说明
项目简介
Binary Ninja MCP 服务器插件是一个为 Binary Ninja 逆向工程软件设计的插件,它实现了 Model Context Protocol (MCP) 服务器。该插件允许 LLM 客户端通过标准的 MCP 协议与 Binary Ninja 交互,获取反汇编代码的上下文信息,并利用 Binary Ninja 的功能辅助代码分析和漏洞挖掘等任务。
主要功能点
- 资源 (Resources) 访问: 允许 LLM 客户端访问 Binary Ninja 中加载的二进制文件信息,例如函数、变量、代码块等,作为上下文信息。
- 工具 (Tools) 执行: 支持注册和执行 Binary Ninja 的各种分析工具,例如反汇编、反编译、符号解析等,使 LLM 能够调用这些功能进行更深入的分析。
- Prompt 模板 (Prompts) 支持: 可能支持定义和渲染 Prompt 模板,以便根据不同的分析任务定制 LLM 的交互方式。(仓库信息有限,具体 Prompt 功能需查看插件代码)
- HTTP 接口: 通过 HTTP 协议提供 MCP 服务器接口,方便 LLM 客户端进行连接和通信。
- LLM 集成: 旨在与 LLM 模型集成,利用 LLM 的自然语言处理能力增强逆向工程和安全分析的效率。
安装步骤
由于这是一个 Binary Ninja 插件,安装步骤遵循 Binary Ninja 插件的通用安装方法:
-
克隆仓库: 虽然 'community-plugins' 是一个插件集合仓库,但根据描述,实际的插件仓库地址可能是 'https://github.com/fosdickio/binary_ninja_mcp' (需要进一步验证,如果仓库列表页面有插件的独立链接,请使用插件的独立仓库链接)。 如果有独立的插件仓库,请克隆该仓库。如果插件直接包含在 'community-plugins' 仓库中,则需要找到插件在仓库中的子目录。
-
复制插件到 Binary Ninja 插件目录: 将克隆下来的插件目录(或插件子目录)复制到 Binary Ninja 的插件目录。插件目录通常位于:
- Windows: '%APPDATA%\Binary Ninja\plugins'
- Linux: '~/.binaryninja/plugins/'
- macOS: '~/Library/BinaryNinja/plugins/' 你也可以在 Binary Ninja 软件中通过 "File" -> "Open Plugin Folder" 菜单打开插件目录。
-
重启 Binary Ninja: 重启 Binary Ninja 软件以加载新安装的插件。
服务器配置
MCP 客户端需要配置连接到 Binary Ninja MCP 服务器的信息。由于该插件通过 HTTP 提供接口,MCP 客户端需要配置 HTTP 连接相关的参数。以下是一个可能的 MCP 客户端配置示例 (JSON 格式):
{ "serverName": "Binary Ninja MCP Server", "transport": "http", "command": "binaryninja", "args": [ "--plugin-load", // 加载插件的参数,可能需要根据插件实际路径调整 "<Binary Ninja 插件目录>/binary_ninja_mcp" // 插件在 Binary Ninja 插件目录中的路径,例如 "binary_ninja_mcp" 或者 "binary_ninja_mcp/__init__.py" ], "host": "http://localhost", // MCP 服务器监听的 Host 地址 "port": 8080, // MCP 服务器监听的端口 "endpoint": "/api/mcp" // MCP 服务器的端点路径 }
参数注释:
- 'serverName': MCP 服务器的名称,用于在客户端标识服务器。
- 'transport': 传输协议,这里应为 "http"。
- 'command': 启动 MCP 服务器的命令。对于 Binary Ninja 插件,这里通常是 Binary Ninja 的启动命令,例如 "binaryninja" (假设 binaryninja 命令在系统 PATH 环境变量中)。
- 'args': 启动命令的参数列表。
- '--plugin-load': Binary Ninja 的参数,用于加载指定的插件。
- '<Binary Ninja 插件目录>/binary_ninja_mcp': 需要替换为实际的插件路径。这指示 Binary Ninja 启动时加载 MCP 服务器插件。插件的具体路径取决于插件在插件目录中的组织方式。
- 'host': HTTP 服务器监听的 Host 地址,通常为 "http://localhost" 表示本地主机。
- 'port': HTTP 服务器监听的端口,例如 8080。
- 'endpoint': MCP 服务器在 HTTP 服务上的端点路径,例如 "/api/mcp"。
注意:
- 上述配置是一个示例,实际配置可能需要根据插件的具体实现和 Binary Ninja 的版本进行调整。
- 插件的具体加载方式和 HTTP 服务器的配置 (Host, Port, Endpoint) 需要参考插件的文档或源代码 (如果仓库提供)。
- 启动 Binary Ninja 并加载插件后,MCP 服务器应该开始在配置的 Host 和 Port 上监听来自 MCP 客户端的连接。
基本使用方法
- 启动 Binary Ninja: 确保已安装 Binary Ninja 软件并成功加载 MCP 服务器插件。
- 启动 MCP 客户端: 配置 MCP 客户端,使用上述 "服务器配置" 中生成的 JSON 配置信息连接到 Binary Ninja MCP 服务器。
- 客户端发送 MCP 请求: 使用 MCP 客户端按照 MCP 协议规范发送请求,例如:
- 请求访问 Binary Ninja 中加载的二进制文件的资源信息 (例如,函数列表、代码块内容等)。
- 请求调用 Binary Ninja 提供的分析工具 (例如,反汇编函数、执行符号解析等)。
- 与 LLM 模型配合,利用 Prompt 模板进行交互式代码分析。
- 服务器返回 MCP 响应: Binary Ninja MCP 服务器接收到客户端请求后,会处理请求并返回符合 MCP 协议的 JSON-RPC 响应或发送通知。
- 在 LLM 应用中使用上下文: MCP 客户端接收到服务器响应后,可以将上下文信息传递给 LLM 应用,用于代码理解、漏洞分析、代码生成等任务。
请务必查阅插件的官方文档或源代码仓库,获取更详细的安装、配置和使用说明,以及插件支持的具体 MCP 功能和参数。
信息
分类
开发者工具