返回市场
宾贾_mcp

宾贾_mcp

作者:rsprudencio2 星标更新:2025-06-08

项目介绍

Binary Ninja MCP Server

用于与Binary Ninja交互和自动化的Model Context Protocol服务器。此服务器提供了通过大型语言模型与Binary Ninja进行交互的工具。

概述

Binary Ninja MCP Server是一个插件和服务器实现,允许大型语言模型通过Model Context Protocol(MCP)与Binary Ninja进行交互。它提供的功能包括:

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

安装

使用uv(推荐)

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

使用PIP

或者你可以通过pip安装binja-mcp

pip install binja-mcp

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

python -m binja_mcp

Binary Ninja插件安装

克隆这个仓库或将克隆的仓库链接到Binary Ninja的插件目录中:

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

配置

与Claude Desktop/Cursor一起使用

在你的claude_desktop_config.json或Cursor MCP服务器中添加以下内容:

<details> <summary>使用uvx</summary>
"mcpServers": {
  "binja": {
    "command": "uvx",
    "args": [
        "-n",
        "mcp-server-binja"
    ]
  }
}
</details> <details> <summary>使用pip安装</summary>
"mcpServers": {
  "binja": {
    "command": "python",
    "args": [
        "-m", 
        "mcp_server_binja"
    ]
  }
}
</details>

使用方法

  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_desktop_config.json中添加以下内容来使用Claude桌面应用程序进行测试:
{
  "mcpServers": {
    "binja": {
      "command": "uv",
      "args": [ 
        "--directory",
        "/<mcp-server-binja的路径>/src",
        "run",
        "mcp-server-binja"
      ]
    }
  }
}

许可证

该项目采用MIT许可证——详情见LICENSE文件。 </中文翻译>