Token导航 LogoToken导航TokenDH.com
Binja Codemode MCP logo
AI代理未说明官方级别未说明来源级核验

Binja Codemode MCP

MCP Server

Binary Ninja的MCP服务器插件,通过直接执行Python代码实现LLM辅助的逆向工程。

工具数

0

提示词数

0

GitHub Stars

9

资源数

0
逆向工程安全分析PythonClaude代码执行Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

akrutsinger

提供方

akrutsinger

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

二进制忍者码模式MCP

一种模型上下文协议(MCP)服务器 二进制忍者 通过代码执行实现LLM辅助的逆向工程。

概述

此插件实现 Anthropic的代码执行模式LLM不是访问典型的MCP“工具”,而是编写直接针对Binary Ninja的API执行的Python代码。这种方法(Cloudflare将其描述为“代码模式”)更具令牌效率,并在一次执行中实现更复杂的多步骤分析。

主要特点

  • 编写直接针对Binary Ninja的API运行的Python
  • 查询和修改二进制数据库
  • 检查点/回滚、持久工作区文件和可重用的分析模式
  • API密钥身份验证和一些代码验证的基本安全性

安装

方法1:插件管理器(推荐)

  1. 在Binary Ninja中,打开插件管理器(Plugins > Manage Plugins)
  2. 搜索 Code Mode MCPbinja_codemode_mcp
  3. 点击 Install
  4. 重新启动二进制Ninja

安装后,插件将位于社区中 插件 文件夹:

# Linux
~/.binaryninja/plugins/repositories/community/plugins/akrutsinger_binja_codemode_mcp/

# macOS
~/Library/Application Support/Binary Ninja/plugins/repositories/community/plugins/akrutsinger_binja_codemode_mcp/

# Windows
%APPDATA%\Binary Ninja\plugins\repositories\community\plugins\akrutsinger_binja_codemode_mcp\

方法2:手动安装

克隆或下载此存储库并复制到您的Binary Ninja 插件 文件夹:

# Linux
cp -r plugin/ ~/.binaryninja/plugins/binja_codemode_mcp/

# macOS
cp -r plugin/ ~/Library/Application\ Support/Binary\ Ninja/plugins/binja_codemode_mcp/

# Windows
copy plugin\ %APPDATA%\Binary Ninja\plugins\binja_codemode_mcp\

MCP客户端配置

配置您的MCP客户端以与插件通信。通往 mcp_bridge.py 这取决于您的安装方法。

用于插件管理器安装

泽德 (Agent Panel > ... > Add Custom Server...):

{
  /// The name of your MCP server
  "binja-codemode-mcp": {
    /// The command which runs the MCP server
    "command": "python3",
    /// The arguments to pass to the MCP server
    "args": ["~/.binaryninja/plugins/repositories/community/plugins/akrutsinger_binja_codemode_mcp/bridge/mcp_bridge.py"],
    /// The environment variables to set
    "env": {
      "BINJA_MCP_URL": "http://127.0.0.1:42069",
      "BINJA_MCP_KEY": "binja-codemode-local"
    }
  }
}

克劳德桌面版 (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "binja-codemode-mcp": {
      "command": "python3",
      "args": ["~/Library/Application Support/Binary Ninja/plugins/repositories/community/plugins/akrutsinger_binja_codemode_mcp/bridge/mcp_bridge.py"],
      "env": {
        "BINJA_MCP_URL": "http://127.0.0.1:42069",
        "BINJA_MCP_KEY": "binja-codemode-local"
      }
    }
  }
}

注: 使用绝对路径。替换 ~ 如果需要,可以使用您的主目录路径,并根据您的操作系统进行调整。

用于手动安装

请改用以下路径:

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

自定义API密钥(可选)

若要使用自定义API密钥而不是默认的API密钥,请创建 ~/.binaryninja/codemode_mcp/config.json:

{
  "api_key": "your-custom-key"
}

然后更新您的MCP客户端配置,以在中使用相同的密钥 BINJA_MCP_KEY.

日志记录配置(可选)

BINJA_MCP_LOG_LEVEL 用于控制日志输出的环境变量(stderr):

# Options: DEBUG, INFO (default), WARNING, ERROR, CRITICAL
export BINJA_MCP_LOG_LEVEL=DEBUG

或者添加到您的MCP客户端配置中:

"env": {
  "BINJA_MCP_URL": "http://127.0.0.1:42069",
  "BINJA_MCP_KEY": "binja-codemode-local",
  "BINJA_MCP_LOG_LEVEL": "DEBUG"
}

用法

  1. 打开Binary Ninja并加载二进制文件
  2. 启动服务器: Plugins > MCP Code Mode > Start Server
  3. 在您的MCP客户端(Claude、Zed等)中,开始提示!

示例提示

"List all functions that reference memcpy and check if they validate buffer sizes"

"Decompile main() and identify potential security issues"

"Create a checkpoint, then rename all sub_* functions based on their behavior"

"Find and categhorize all string references by type (URL, file path, error message, etc.)"

"Analyze the binary's attack surface by examining input validation in network-facing functions"

API概述

LLM编写的Python代码可以访问 binja 使用以下方法创建对象:

查询

二进制信息

  • binja.get_binary_status() -二进制元数据
  • binja.list_functions() -所有功能
  • binja.analyze_function_batch() -批量功能分析
  • binja.list_imports() -导入符号
  • binja.list_exports() -导出符号
  • binja.list_segments() -内存段
  • binja.list_classes() -课程
  • binja.list_namespaces() -命名空间
  • binja.list_data_items() -数据项

代码分析

  • binja.decompile() -获取伪代码
  • binja.get_assembly() -进行拆卸
  • binja.get_basic_blocks() -基本功能信息

交叉引用

  • binja.get_xrefs_to() -查找来电者
  • binja.get_function_calls() -查找来电者
  • binja.get_data_xrefs_to() -地址的数据参考
  • binja.get_data_xrefs_from() -来自地址的数据引用

数据读取

  • binja.read_bytes() -读取原始字节
  • binja.read_string() -读取字符串
  • binja.get_string_at() -获取字符串信息
  • binja.get_data_var_at() -获取数据变量信息
  • binja.list_strings() -列出所有字符串

搜索和查找

  • binja.find_bytes() -搜索字节模式
  • binja.function_at() -按地址或名称获取函数
  • binja.get_comment() -获取评论
  • binja.get_function_comment() -获取函数注释
  • binja.get_type() -获取用户定义的结构/类型信息

突变

重命名

  • binja.rename_function(func, name) -重命名功能
  • binja.rename_data() -重命名数据
  • binja.rename_variable(func, old, new) -重命名变量

打字

  • binja.retype_variable() -重新键入变量
  • binja.define_type() -定义结构/类型
  • binja.set_function_signature() -设置原型

评论

  • binja.set_comment() -添加评论
  • binja.set_function_comment() -添加功能注释
  • binja.delete_comment() -删除评论
  • binja.delete_function_comment() -删除功能注释

工作区

文件持久性

  • binja.write_file() -保存到工作区
  • binja.read_file() -从工作区读取
  • binja.list_files() -列出工作区文件
  • binja.delete_file() -删除工作区

技能

可重用代码

  • binja.save_skill(name, code, desc) -保存可重用代码
  • binja.load_skill(name) -加载技能
  • binja.list_skills() -列出已保存的技能
  • binja.delete_skill() -删除技能

帮手

  • binja.find_functions_calling_unsafe() -查找调用潜在不安全函数的函数
  • binja.get_function_complexity() -获得圈复杂度

安全

一种基本的安全级别,旨在防止某些滥用:

  • 仅本地主机绑定(127.0.0.1)
  • 需要API密钥验证
  • 简单的代码验证阻止了潜在的危险操作
  • 30秒执行超时

注: 此插件确实执行任意Python代码。仅与受信任的MCP客户端和LLM一起使用。

许可证

MIT许可证-请参阅 许可证 了解详情。

目录标签

目录标签

逆向工程安全分析PythonClaude代码执行本地部署LLM集成二进制分析

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP