Token导航 LogoToken导航TokenDH.com
Radare2 MCP Server logo
办公协作未说明官方级别未说明来源级核验

Radare2 MCP Server

MCP Server

r2-copilot是一个基于radare2的多代理协作协议(MCP)服务器,用于逆向工程分析。

工具数

0

提示词数

0

GitHub Stars

13

资源数

0
逆向工程Python协作工具

安装说明

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

作者 / 组织

darallium

提供方

darallium

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

英语在这里

r2副驾驶

![asciicast](https://asciinema.org/a/OHQJfZojv4oBf1sAmWeImOMJ7) r2-copilot 是一个强大的逆向工程框架 radare2(注:这是一个软件或工具的名称,直接翻译为中文可能无法准确传达其原意,因此通常保留原名,但在此提供音译以作参考) 是为此目的而设计的多智能体协作协议(MCP)服务器。

此仓库包含第三方工具。官方的MCP工具如下。

  • r2mcp 可以翻译为“r2mcp(注:此为一个特定缩写或代码,无直接中文含义,保留原样)”或者根据上下文可能需要具体解释其含义,但在此仅提供直译。如果“r2mcp”有特定的行业或领域含义,需要具体情境来确定准确的中文翻译 - 的 官方radare2 MCP(多平台兼容包/维护者包等,具体含义需根据上下文确定)
  • r2ai 可以翻译为“r2人工智能”或“第二代人工智能”,具体取决于上下文和语境。在这里,我选择了“r2人工智能”作为翻译,因为它更简洁明了,且能直接传达出“r2”和“人工智能”的概念 - 的(the) 官方R2AI

安装

※ 已经添加到r2pm中了!r2pm -Uci r2-copilot即可进行安装。

自建房屋时

  1. 克隆存储库
git clone https://github.com/your-repo/r2-copilot.git
cd r2-copilot
  1. 安装依赖关系

在项目中 uv 使用它来管理依赖关系。

uv sync

安装radare2

r2pipe 要使其正常运行radare2 必须安装在系统上。

mkdir -p ~/.local/src/
cd ~/.local/src/
git clone https://github.com/radareorg/radare2 --depth 1
radare2/sys/install.sh

如果是Windows系统,下载编译好的二进制文件并将其添加到PATH中会更快捷。

参见:https://github.com/radareorg/radare2

使用方法

要启动服务器,请执行以下命令。

./start.sh

由此,将启动通过标准输入输出(stdio)进行通信的MCP服务器。 服务器等待客户端的请求,执行 radare2 命令,并返回结果。

要使用gemini-cli ~/.gemini/settings.json 请按以下内容进行追加。

{
  /*
      ...
  */
  "mcpServers": {
    /*
        ...
    */
    "r2-copilot": {
      "command": "r2pm",
      "args": ["-r", "r2mcp"]
      /* セルフビルドの場合で、uv使ってない人はこれ
      "command": "/path/to/r2-copilot/start.sh"
      /* 
      /* uvを使ってる場合はこっちの方がパフォーマンス出ると思います  
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/r2-copilot",
        "r2copilot"
      ]
      */
  }
}

解析工作流程

一般的二进制分析建议按照以下步骤进行。 另外,如果使用gemini-cli等工具,则无需记忆具体命令,建议自然输入。

  1. 会议开始

首先,针对要分析的文件启动radare2会话。这样,就会生成一个会话ID,用于后续操作。

命令: create_session(file_path='')

例:

在分析 /home/kali/ctf/iris/sqlate/vuln 时

print(default_api.create_session(file_path='/home/kali/ctf/iris/sqlate/vuln'))

注:此命令响应中包含的 session_id 将在后续所有命令中必需。
  1. 初期静态分析(信息收集)

会话开始后,将收集二进制文件的基本信息。这些命令可以并行执行。

  • 获取二进制文件的基本信息:

get_binary_info(session_id='') (确认架构、位数、文件格式等)

  • 安全机构确认:

check_security(session_id='') (确认NX、PIE、Canary等缓解功能是否启用)

  • 字符串列表:

get_strings(session_id='') (提取嵌入在二进制中的字符串,寻找推测程序功能和目的的线索)

  • 导入函数列表:

get_imports(session_id='') (我们将确认是从外部库调用了哪些函数。是否存在system或strcpy等危险函数是重要的指标)

  1. 详细解析

接下来,我们将运行radare2强大的自动分析功能。这将确定函数、基本块、代码相互引用等。

命令: analyze_all(session_id='')

注:根据二进制文件的大小,此处理过程可能会耗时较长。
  1. 函数调查

自动解析完成后,将列出已识别的函数,以把握程序的整体情况。

  • 显示函数列表:

list_functions(session_id='')

  • 特定函数的反汇编:

disassemble_function(session_id='', address='') (例如,若要检查程序的起点main函数,则需指定address='sym.main')

  1. 高级操作(执行原始命令)

在进行更复杂的调查,或特定工具无法按预期运行的情况下execute_command 可以使用它直接执行radare2的任意命令。

命令: execute_command(session_id='', command='')

# "login" という文字列を名前に含む関数を検索する
print(default_api.execute_command(command='afl | grep login', session_id='...'))

API 参考文档

服务器公开了以下工具,每个工具都对应 radare2 的特定功能。

会话管理

  • create_session将启动一个新的radare2会话。
  • list_sessions显示活跃会话列表。
  • close_session会议结束。
  • switch_session切换当前会话。

解析

  • analyze_all对整个二进制文件进行解析aa)。
  • analyze_function解析特定地址的函数(af)。
  • list_functions列出解析后的函数afl)。
  • get_function_info获取函数的详细信息(afi)。
  • get_xrefs_to获取到特定地址的交叉引用(axt)。
  • get_xrefs_from获取来自特定地址的交叉引用(axf)。

二进制信息

  • get_binary_info获取有关二进制的全面信息iI)。
  • get_sections显示章节列表(iS)。
  • get_symbols显示符号列表is)。
  • get_strings将字符串列表显示出来izizz)。
  • get_imports列出导入的函数(ii)。
  • get_entrypoint获取入口点(ie)。
  • check_security确认安全功能(如NX、PIE等)。

反汇编

  • disassemble将指令进行反汇编(pd)。
  • disassemble_function将整个函数进行反汇编pdf)。
  • print_hex将显示16进制转储px)。
  • print_string显示地址中的字符串(psz)。

导航

  • seek跳转到特定地址(s)。
  • seek_relative会相对移动。
  • get_current_address获取当前地址。
  • set_block_size设置区块大小(b)。

搜索

  • search_bytes搜索条纹图案(/x)。
  • search_string搜索字符串(/)。
  • search_rop_gadgets搜索ROP小工具(/R)。

留言

  • write_hex输入十六进制值wx)。
  • write_assembly写入汇编指令(wa)。
  • write_nop写入NOP指令。

调试器

  • continue_execution将继续执行程序(dc)。
  • step_into进行单步执行(ds)。
  • step_over执行单步跳过dso)。
  • set_breakpoint设置断点(db)。
  • list_breakpoints显示断点列表。
  • get_registers获取寄存器的值(dr)。
  • set_register设置寄存器的值。

标志

  • list_flags显示标志(标签)列表f)。
  • create_flag创建一个标志。

设定

  • get_config获取设置值(e)。
  • set_config设置设定值。
  • execute_command执行原始的radare2命令。

目录标签

目录标签

逆向工程Python协作工具本地部署二进制分析radare2插件安全研究

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP