二进制分析交互服务器

Binary Ninja MCP Server是一个通过大型语言模型与Binary Ninja交互的协议服务器,提供获取汇编代码、反编译代码、重命名函数和变量等功能。

  • by rsprudencio
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 rsprudencio/binja_mcp

使用说明

二进制Ninja MCP服务器

用于Binary Ninja交互和自动化的模型上下文协议服务器。此服务器提供通过大型语言模型与Binary Ninja交互的工具。

概述

Binary Ninja MCP服务器是一个插件和服务器实现,它允许大型语言模型通过模型上下文协议(MCP)与Binary忍者进行交互。它提供以下功能:

  • 获取函数的汇编代码
  • 获取函数的反编译代码(HLIL)
  • 重命名函数和变量
  • 添加评论

安装

使用紫外线(推荐)

使用时 uv 不需要特定的安装。我们将 使用 uvx 直接运行 binja_mcp.

使用PIP

或者,您可以安装 binja-mcp 通过pip:

pip install binja-mcp

安装后,您可以使用以下命令将其作为脚本运行:

python -m binja_mcp

二进制Ninja插件安装

克隆此存储库或将克隆的存储库链接到Binary Ninja的插件目录:

  • Linux: ~/.binaryninja/plugins/
  • macOS: ~/Library/Application Support/Binary Ninja/plugins/
  • 窗户: %APPDATA%\Binary Ninja\plugins\

配置

使用Claude桌面/光标

将此添加到您的 claude_desktop_config.json 或游标MCP服务器:

Using uvx
"mcpServers": {
  "binja": {
    "command": "uvx",
    "args": [
        "-n",
        "mcp-server-binja"
    ]
  }
}
Using pip installation
"mcpServers": {
  "binja": {
    "command": "python",
    "args": [
        "-m", 
        "mcp_server_binja"
    ]
  }
}

用法

  1. 打开Binary Ninja并加载二进制文件
  2. 从“工具”菜单或使用键盘快捷键启动MCP服务器
  3. 使用Claude Desktop、Cursor或您喜欢的任何MCP客户端与二进制文件进行交互

可用命令

以下命令可通过MCP接口使用:

  • binja_get_function_assembly:获取命名函数的汇编代码
  • binja_get_function_decompiled:获取命名函数的反编译代码
  • binja_get_global_variable:获取有关全局变量的信息
  • binja_get_current_function_assembly:获取当前函数的程序集
  • binja_get_current_function_decompiled:获取当前函数的反编译代码

发展

如果您正在进行本地开发,有两种方法可以测试您的更改:

  1. 运行MCP检查器以测试您的更改:
npx @modelcontextprotocol/inspector uvx binja_mcp
  1. 使用Claude桌面应用程序进行测试,方法是将以下内容添加到您的 claude_desktop_config.json:
{
  "mcpServers": {
    "binja": {
      "command": "uv",
      "args": [ 
        "--directory",
        "/<path to mcp-server-binja>/src",
        "run",
        "mcp-server-binja"
      ]
    }
  }
}

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。