考试通知
REA 对接 IDA Pro 完整实操指南3 步让 AI Agent 驱动你的逆向工程【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/reaREAReverse Engineer Anything是一个把 AI Agent 与逆向分析工具通过 MCP 协议连起来的开源项目口号是用 Agent 逆向一切从应用行为一路追到原生二进制。本文带你完整走通 REA 对接 IDA Pro 的两条接入路径交互式GUI 附加模式与无人值守headless模式——从写注册配置、跑通第一条分析命令到让 Agent 永久持有这条 IDA 链路并做完验收排障。这条链路能替你做什么配好之后IDA Pro 就从只能人肉点鼠标的本地 GUI变成 AI Agent 可以直接驱动的分析后端 Agent 直接调用analyze_function、search_strings这类 MCP 工具函数分析、字符串搜索、伪代码获取都能自动完成不用你来回切窗口 每个结论都带证据Evidence与限制说明输出不是黑盒你清楚知道它看到了什么、没看到什么 与 Hopper、Ghidra 共用同一套 CLI 命令和工具契约今天接 IDA明天换引擎只改一个环境变量 每条结论都标注证据边界空字段明确标记为 unknown避免 Agent 拿查不到当不存在去下结论 核心理念REA 不安装、不激活、不捆绑 IDA。它只适配上游现成的 ida-pro-mcp 服务器让你复用已经装好的 IDA 环境——你的授权、你的插件、你的习惯一样不动。完整说明见官方文档 docs/ida-provider.md。先对号入座两种接入姿势在动手前先花 30 秒确认自己属于哪种场景。两种模式的本质差别在于你手上是已经打开的 IDA 数据库还是一个冷冰冰的二进制文件。维度交互式GUI 附加无人值守headless依赖上游 1.4.0 legacy 工具get_metadata、list_functions等上游 database supervisor APIidb_open、idb_list等IDA 界面必须已在 GUI 中打开目标二进制无需界面REA 自动建库、自动分析身份校验你传入的原始二进制 SHA-256 必须与 IDA 记录的输入哈希一致二进制先复制进私有临时副本做摘要校验并绑定独占 worker典型场景人工交互式逆向、边看 GUI 边让 Agent 干活批量分析、CI 流水线、Agent 全自动调查关闭行为只释放 MCP 连接绝不保存或关闭你的 GUI 数据库以save: false释放会话确认上游会话清单已移除后清理私有工作区一句话选型你现在人坐在 IDA GUI 前 → 交互式你要让机器自己跑 → 无人值守。环境准备与最小可运行路径先装 REA 本体。一条命令完成注册到你的 AgentClaude Code、Cursor 等并安装配套逆向工作流指令npx rea-agents setup它会把 REA 的 MCP 服务注册进你已装好的 Agent并安装逆向工作流技能文件。注意IDA 适配器需要包含该能力的 REA 版本仓库 main 分支可能领先 npm 发布版装完可先rea --version确认。想从源码跑也行git clone https://gitcode.com/GitHub_Trending/rea2/rea后按 docs/installation.md 构建。装好后别急着看两种模式的区别先用最小路径跑通一条命令获得正反馈。以交互式为例设两个环境变量发一条分析export REA_IDA_MCP_CONFIG/absolute/path/to/ida-mcp.json export REA_ANALYSIS_PROVIDERida rea function /absolute/path/to/program main --jsonREA_IDA_MCP_CONFIG指向你的 IDA 注册文件下文会写REA_ANALYSIS_PROVIDERida声明用 IDA 引擎rea function就是对main发起一次函数分析。如果返回了带证据的 JSON 而不是报错恭喜链路已经通了。配置解析的源码在 IdaConfiguration.ts它负责校验注册格式并区分两种 profile报错信息基本都能对应到里面某条约束。交互式模式完整配置与高频坑点交互式模式的分工是你的 IDA GUI 负责分析和显示REA 只通过上游 stdio 代理连进来发请求。三步走第 1 步写注册 JSON。从你已配置好的 ida-pro-mcp 注册里把command、args和可选的env原样复制出来存成一个文件{ command: python, args: [ /absolute/path/to/ida_pro_mcp/server.py, --ida-rpc, http://127.0.0.1:13337 ] }它告诉 REA怎么启动你的上游 stdio 代理。已有的mcpServers对象里带ida-pro-mcp条目的注册也被接受。记住要用你自己那套能跑通的上游注册而不是照抄示例路径。第 2 步设环境变量。就是上面最小路径里的export两行。它把注册文件在哪 用哪个引擎这两件事一次性钉死后续 CLI 和 MCP 入口都认这两个变量。第 3 步发起分析。在 IDA GUI 中打开目标二进制后rea function /absolute/path/to/program main --json rea decompile /absolute/path/to/program main --json第一条拿函数分析结果第二条拿反编译伪代码。每次请求前REA 都会核对附加身份与映像基址保证你问的确实是 GUI 里那个数据库。⚠️ 三个高频坑提前看一遍能省大量排查时间GUI 里打开原始输入二进制不要打开.idb/.i64数据库文件。SHA-256 与 IDA 记录的输入哈希对不上会直接失败报错里会带恢复指引。GUI 的/mcp端点是内部 RPC 端点必须通过上游 stdio 代理连接不要拿那个 URL 当 Streamable HTTP 地址用。切换分析目标前先让 REA 关闭当前连接close_binary或等价的 CLI 关闭动作否则身份校验会撞车。另有一条 WSL 提示GUI 在 Windows、REA 在 WSL 时原始二进制用 WSL 挂载别名读即可因为绑定的是记录的输入哈希而不是要求 GUI 打开 WSL 路径。无人值守模式完整配置与沙箱行为headless 模式对上游的要求更高必须安装支持 database supervisor APIidb_open、idb_list、idb_close、显式database参数的版本。旧版 1.4.0idalib-mcp——只收一个初始文件名、走 SSE 的那种——不适用。第 1 步注册文件里加mode: headless。{ command: idalib-mcp, args: [--stdio, --max-workers, 1], mode: headless }这一行mode就是告诉 REA按 supervisor 协议走。如果你的 idalib 环境需要指定 IDA 位置加上env: { IDADIR: /absolute/path/to/ida }已经部署了本地 HTTP supervisor 的也可以把 command 换成url: http://127.0.0.1:8745/mcp。第 2 步CLI 命令与交互式完全一致。Windows 原生环境下PowerShell$env:REA_IDA_MCP_CONFIG D:\analysis\ida-mcp.json $env:REA_ANALYSIS_PROVIDER ida rea function D:\samples\program.exe main --json同一套rea function/rea decompile零学习成本切换模式。第 3 步理解 REA 替你守住的安全边界。这是 headless 模式最值得花 2 分钟看懂的部分REA 会把被接纳的二进制复制进私有临时目录POSIX 下目录权限0700校验摘要后才申请独占 workerforce_headless分析请求中注入的是 supervisor 返回的数据库 ID而不是猜一个用户数据库就用关闭或启动失败时以save: false释放会话 → 确认上游会话清单里确实没有残留 → 删除私有输入与附属文件释放未验证成功时工作区会被保留并报告清理不完整原始二进制永远不会被执行、也永远不会被覆盖⚠️ 硬约束headless 模式下REA 与 supervisor 必须共享同一主机文件系统和原生路径语法。Windows 上的 supervisor 就配 Windows 上的 REA。WSL Windows GUI 的混合场景只有交互式模式支持。另外注意一个 REA 会话独占一个数据库stdio 注册的IDA_MCP_MAX_WORKERS默认就是 1。可选的workspaceRoot可以让私有工作区落在你指定的已有目录记得留够输入副本 IDA 工作文件的磁盘空间。把这条链路持久化给 Agent临时用环境变量只适合今天试一次。要让 Agent 每次会话都自带 IDA 能力把注册路径写进 REA 的 MCP 入口环境即可上游注册文件保持独立不动{ mcpServers: { rea: { command: npx, args: [-y, rea-agentsversion-with-ida, mcp], env: { REA_ANALYSIS_PROVIDER: ida, REA_IDA_MCP_CONFIG: /absolute/path/to/ida-mcp.json } } } }这段配置让 Agent 的 REA 服务器一启动就自带 IDA 引擎选择version-with-ida换成真正包含该适配器的版本号。重连后Agent 就能按标准流程调用这条链路{name: open_binary, arguments: {path: /absolute/path/to/program, provider_id: ida}} {name: analyze_function, arguments: {procedure: main}} {name: search_strings, arguments: {pattern: license}} {name: close_binary, arguments: {}}open_binary会启动所选 provider 的会话headless 下会等待自动分析完成close_binary规范收尾。 三个小贴士MCP 请求的timeoutMs默认 300000ms大目标分析时请在 Agent 侧把 MCP 请求超时调高超时未完成时私有工作区会被保留不能靠会话清单证明请求已停走交互式注册也可以先设好REA_IDA_MCP_CONFIG再跑rea setup --client clientsetup 会把该文件引用纳入待审查计划且不会把上游凭据复制进 Agent 配置rea doctor --provider ida --json只校验注册、不会启动 IDA适合在部署脚本里当只读体检用能力边界与验收清单拿证据化输出之前先知道哪些是有、哪些是没有、哪些是未知。两种 profile 共同支持✅ 函数/字符串清单、字面量与正则搜索✅ 过程解析、伪代码、汇编、原始函数指令✅ 已解析的被调用者、传入地址引用、函数档案dossier明确的限制❌ 完整函数体范围、带类型的引用边、CFG、被引用数据、源本地变量、注释分类、数据库修订号不可用❌binary_overview、整库符号清单、变更操作、调试、任意 Python 转发、GUI 导航不在适配器覆盖范围❓ 档案里空着的不支持字段表示unknown未知不代表确认不存在——让 Agent 下结论时注意这一点验收分两步走npm run verify:ida -- --target /absolute/path/to/program --procedure main仓库自带的验证脚本会真实走一遍 CLI 与 MCP 工具链校验输出契约、Evidence 完整性、原始输入保全与会话清理且不会在控制台摘要里泄露你的本地目标数据。rea doctor --provider ida --json只做注册校验、不启动 IDA确认配置对不对这一层。⚡ 经验法则在组合依赖某些字段的工作流之前先用binary_session确认工具实际可用性再动手拼流程。注册已经能跑通时反复跑 doctor/setup 没有必要。核心会话与连接管理源码集中在 src/ida/ 目录IdaProvider.ts、IdaWorkspace.ts、IdaMcpConnection.ts 等报错看不懂时对照源码往往是最快的路。排障手册现象解法提示哈希不匹配GUI 里打开的是.idb/.i64而非原始二进制重新打开原始文件WSL 下路径打不开交互式模式可用挂载别名headless 模式必须 REA 与 supervisor 同主机headless 启动即失败上游版本太旧单文件名 SSE 的 legacyidalib-mcp升级到支持 supervisor API 的版本分析请求超时调大 MCPtimeoutMs注意超时未完成会保留私有工作区待清理中断后会话残留检查上游会话清单与保留的工作区诊断信息再用close_binary规范关闭REA 关闭后担心 IDA 项目被弄坏不用担心交互式只断连接数据库完好无损外部编辑实时可见写在最后回到开头那条链路其实就三步写好注册 JSON → 设两个环境变量 → 选对 profile 模式。交互式模式陪你坐着人肉看headless 模式让机器替你跑批两者共用同一套rea function/rea decompile命令切换成本只有一个mode字段。加上证据化输出和绝不执行、绝不覆盖原文件的沙箱边界把 IDA Pro 接进 AI Agent 的逆向工作流这件事可以放心做。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
REA 对接 IDA Pro 完整实操指南:3 步让 AI Agent 驱动你的逆向工程
NEXT STEP
看完公告,下一步怎么走?
把报考交给靠谱的人:材料预审、批次抢报、考前辅导、复审提醒,全程有人跟。