项目简介
r0idamcp 是一个针对 IDA Pro 的单文件插件,它实现了一个基于 Model Context Protocol (MCP) 的服务器。该服务器允许支持 MCP 协议的大模型(LLM)客户端连接到 IDA Pro,通过标准化的接口获取逆向工程的上下文信息(如函数、字符串、交叉引用)并调用 IDA Pro 的功能(如反编译、重命名、设置类型)。这使得用户可以通过大模型助手来辅助甚至自动化逆向分析任务。
主要功能点
- 获取元数据: 获取当前分析文件(IDB)的基本信息,如路径、模块名、基址、大小、哈希值等。
- 函数操作: 根据名称或地址查找特定函数;列出所有函数(支持分页);获取当前光标所在函数的信息;反编译函数到伪代码;反汇编函数到机器码;重命名函数;设置函数原型。
- 字符串操作: 列出所有字符串(支持分页);搜索包含特定模式或子串的字符串。
- 地址及引用: 获取当前光标所在的地址;获取指定地址的所有交叉引用。
- 修改操作: 在指定地址添加注释;重命名函数内局部变量;设置函数内局部变量类型;重命名全局变量;设置全局变量类型;根据C语言声明创建或更新局部类型。
- 连接检查: 提供检查服务器是否成功连接到IDA Pro并正常运行的功能。
- 数字转换: 将数字(十进制、十六进制)转换为不同的表示形式(字节、ASCII、二进制等)。
安装步骤
- 安装 IDA Pro: 确保已安装 IDA Pro(推荐 8.3 或更高版本,最好是 9.x)。
- 配置 Python 环境: 使用 IDA Pro 自带的 Python 环境。运行 IDA 的 'idapyswitch' 工具,指定IDA使用的Python路径。
- 安装 fastmcp 库: 使用与 IDA Pro 关联的 Python 环境的 'pip' 工具安装 'fastmcp' 库。
pip install fastmcp - 拷贝插件文件: 将 'r0idamcp.py' 文件拷贝到 IDA Pro 的插件目录。不同操作系统的插件目录位置如下:
- Windows: '%appdata%\Hex-Rays\IDA Pro\plugins'
- Linux: '~/.idapro/plugins/'
- macOS: '~/Library/Application Support/IDA Pro/plugins/'
- 安装完成。
服务器配置 (供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' 来启动。客户端只需要知道服务器运行的地址和端口即可连接。
基本使用方法
- 打开 IDA Pro 并加载你想要分析的文件。
- 在 IDA Pro 菜单中,点击 Edit -> Plugins -> r0mcp 来启动 MCP 服务器。IDA 的 Python 输出窗口会显示服务器启动日志(例如 "Uvicorn running on http://0.0.0.0:26868")。
- 启动你的 MCP 客户端(大模型助手),并根据上面的说明配置连接到 IDA Pro MCP 服务器的地址和端口。
- 检查客户端的连接状态,确认成功连接到 r0idamcp 服务器。
- 现在,你可以通过大模型客户端与 IDA Pro 进行交互,利用大模型的自然语言能力结合 r0idamcp 提供的工具来进行自动化逆向分析任务了。
信息
分类
桌面与硬件