项目简介

r0idamcp 是一个针对 IDA Pro 的单文件插件,它实现了一个基于 Model Context Protocol (MCP) 的服务器。该服务器允许支持 MCP 协议的大模型(LLM)客户端连接到 IDA Pro,通过标准化的接口获取逆向工程的上下文信息(如函数、字符串、交叉引用)并调用 IDA Pro 的功能(如反编译、重命名、设置类型)。这使得用户可以通过大模型助手来辅助甚至自动化逆向分析任务。

主要功能点

  • 获取元数据: 获取当前分析文件(IDB)的基本信息,如路径、模块名、基址、大小、哈希值等。
  • 函数操作: 根据名称或地址查找特定函数;列出所有函数(支持分页);获取当前光标所在函数的信息;反编译函数到伪代码;反汇编函数到机器码;重命名函数;设置函数原型。
  • 字符串操作: 列出所有字符串(支持分页);搜索包含特定模式或子串的字符串。
  • 地址及引用: 获取当前光标所在的地址;获取指定地址的所有交叉引用。
  • 修改操作: 在指定地址添加注释;重命名函数内局部变量;设置函数内局部变量类型;重命名全局变量;设置全局变量类型;根据C语言声明创建或更新局部类型。
  • 连接检查: 提供检查服务器是否成功连接到IDA Pro并正常运行的功能。
  • 数字转换: 将数字(十进制、十六进制)转换为不同的表示形式(字节、ASCII、二进制等)。

安装步骤

  1. 安装 IDA Pro: 确保已安装 IDA Pro(推荐 8.3 或更高版本,最好是 9.x)。
  2. 配置 Python 环境: 使用 IDA Pro 自带的 Python 环境。运行 IDA 的 'idapyswitch' 工具,指定IDA使用的Python路径。
  3. 安装 fastmcp 库: 使用与 IDA Pro 关联的 Python 环境的 'pip' 工具安装 'fastmcp' 库。
    pip install fastmcp
  4. 拷贝插件文件: 将 'r0idamcp.py' 文件拷贝到 IDA Pro 的插件目录。不同操作系统的插件目录位置如下:
    • Windows: '%appdata%\Hex-Rays\IDA Pro\plugins'
    • Linux: '~/.idapro/plugins/'
    • macOS: '~/Library/Application Support/IDA Pro/plugins/'
  5. 安装完成。

服务器配置 (供MCP客户端使用)

r0idamcp 服务器作为一个 IDA Pro 插件运行,启动后会在本地监听一个端口。MCP 客户端(如大模型助手)需要配置服务器的连接信息来与之通信。

r0idamcp 默认使用 SSE (Server-Sent Events) 协议,并在 '0.0.0.0:26868' 地址监听。

MCP 客户端通常通过 JSON 配置文件或图形界面进行配置。以下是一个典型的 JSON 配置示例(请根据你的客户端类型进行调整):

{
  "mcpServers": {
    "r0idamcp": {           // 服务器名称,客户端内部识别用
      "url": "http://192.168.1.2:26868/sse", // MCP服务器的访问地址,将 192.168.1.2 替换为运行 IDA Pro 的电脑的实际IP地址
      "type": "sse"         // MCP服务器使用的协议类型,此处为SSE
    }
    // 如果有其他MCP服务器,可以在此处继续添加配置
  }
}
  • 'mcpServers': 包含所有配置的 MCP 服务器。
  • '"r0idamcp"': 你给这个服务器连接起的内部名称,客户端会用这个名字来引用它。
  • '"url"': 客户端连接服务器的实际网络地址。请确保替换示例中的 IP 地址 ('192.168.1.2') 为运行 IDA Pro 电脑的局域网IP或本地IP ('127.0.0.1' 如果客户端和 IDA 在同一台电脑)。'/sse' 是 SSE 协议的路径。
  • '"type"': 指定连接协议类型,此处为 'sse'。

请注意,r0idamcp 服务器的启动是由用户在 IDA Pro 中手动通过插件菜单触发的,而不是由客户端通过 'command' 和 'args' 来启动。客户端只需要知道服务器运行的地址和端口即可连接。

基本使用方法

  1. 打开 IDA Pro 并加载你想要分析的文件。
  2. 在 IDA Pro 菜单中,点击 Edit -> Plugins -> r0mcp 来启动 MCP 服务器。IDA 的 Python 输出窗口会显示服务器启动日志(例如 "Uvicorn running on http://0.0.0.0:26868")。
  3. 启动你的 MCP 客户端(大模型助手),并根据上面的说明配置连接到 IDA Pro MCP 服务器的地址和端口。
  4. 检查客户端的连接状态,确认成功连接到 r0idamcp 服务器。
  5. 现在,你可以通过大模型客户端与 IDA Pro 进行交互,利用大模型的自然语言能力结合 r0idamcp 提供的工具来进行自动化逆向分析任务了。

信息

分类

桌面与硬件