REA:用MCP把AI Agent变成逆向工程助手

REA 通过 MCP 把 AI Agent 接入本地反编译引擎,实现带偏移证据的本地逆向分析。
REA(Reverse Engineer Anything)是一套基于 Model Context Protocol 的工具集,目标是让 AI Agent 直接参与逆向工程。它不替代 Ghidra、Hopper 或 IDA Pro,而是充当 Agent 与本地反编译器之间的桥梁:Agent 发出分析请求,REA 调用本机引擎完成反编译重活,支持二进制、JavaScript、Electron 应用和 .NET 程序集。其三大设计取向是证据优先、隐私优先和工作流整合——输出引用具体二进制偏移和代码块,结论可在反编译器中即时验证;分析全程本地运行,敏感代码不上传云端;结果直接呈现在 AI 对话窗口中,减少工具切换。安装依赖 Node.js,通过 npm 安装后用 setup 命令注册到 Claude Desktop 等 MCP 客户端。对高度混淆或加壳样本,仍需人工判断。
逆向工程长期被视为高门槛领域,开发者面对没有文档的二进制文件、遗留系统或第三方库时,往往需要在 Ghidra 或 IDA 中手动追踪汇编指令,耗时且容易迷失在底层细节里。REA(Reverse Engineer Anything)试图改变这一局面:它通过 Model Context Protocol(MCP)把本地逆向工具接入 AI Agent,让 Agent 直接读取二进制、JavaScript、Electron 应用和 .NET 程序集,并在分析时引用具体偏移地址作为证据。

REA 是什么
REA 的核心是一套基于 MCP 的工具集,作用是把原始机器码与人类可读逻辑连接起来。它本身不替代 Ghidra、Hopper 或 IDA Pro,而是充当 AI Agent 与这些本地反编译器之间的桥梁——Agent 发出分析请求,REA 调用本机安装的反编译引擎执行重活。
据项目说明,REA 完全在本地运行,专有代码和敏感二进制不会离开你的机器。它给出的解释基于证据,会引用具体二进制偏移或代码块,这意味着你得到的不是 LLM 的“猜测”,而是可在反编译器中即时验证的分析结果。
MCP(Model Context Protocol) 是由 Anthropic 提出并开源的一套协议标准,用于在 AI 应用与外部数据源、工具之间建立统一接口。可以把它类比为「AI 领域的 USB-C」:过去每个 AI 客户端要接入某个工具(如数据库、文件系统、命令行),都需要写一套专属适配代码;有了 MCP 之后,工具方只需实现一次 MCP Server,任何支持该协议的客户端都能直接调用。MCP 通常基于 JSON-RPC 通信,本地场景下多通过 stdio 启动子进程,远程场景则用 SSE 或 HTTP。正因为它把「工具发现」和「工具调用」标准化了,REA 这类项目才能以一个 npm 包的形态,被 Claude Desktop、Cursor、Continue 等不同客户端即插即用。
反编译引擎(Decompiler) 与反汇编器不同:反汇编器把机器码翻译成汇编指令,而反编译器进一步把汇编还原成接近 C 语言风格的伪代码,大幅降低阅读成本。Ghidra 是 NSA 开源的免费套件,Hopper 主打 macOS 平台的轻量与交互,IDA Pro 则是商业逆向领域的长期标杆,Hex-Rays 反编译器尤以还原质量著称。三者的伪代码风格、API 和自动化能力各不相同,REA 屏蔽这些差异,让 Agent 通过统一接口调用它们。
安装与配置
REA 以 npm 包形式分发,安装前需要本机已安装 Node.js。基本流程如下:
npm install -g rea-agents
npx rea-agents setup
rea-agents --help
setup 命令会把 REA 工具注册到本地 AI Agent 配置中,例如 Claude Desktop 或其他兼容 MCP 的客户端。如果需要分析原生二进制,还需要预先安装 Ghidra、Hopper 或 IDA Pro 之一,REA 会调用这些引擎完成反编译。
实际使用流程
以下是一个典型场景:你需要弄清某个遗留 Windows 二进制中认证流程是怎么实现的。
连接 Agent
打开支持 MCP 的 AI 客户端(如 Claude Desktop),在工具列表中应能看到 rea 工具集。如果使用自定义 MCP 客户端,需要手动把 rea-agents 服务器加入配置文件。
指定分析目标
向 Agent 提供目标文件路径和具体问题。例如:
“我需要理解这个二进制中的认证逻辑:
/path/to/target_app.exe。请用 REA 反编译相关函数,并解释它如何验证用户令牌。”
查看证据式输出
Agent 会触发 REA 工具,与本机反编译器交互,提取伪代码并给出分解。典型输出会包含具体偏移地址,例如指出认证逻辑位于 0x4012A0,validate_token 函数先从请求缓冲区取出头部,再用 0x405000 处的静态密钥做 XOR 运算,最后与硬编码字符串 AUTH_SUCCESS 比较,并附上反编译代码片段。有了精确偏移,你可以立刻在自己的反编译器中复核结论。
偏移地址(Offset) 是理解二进制分析的关键概念。可执行文件被加载到内存后,每条指令、每份数据都位于一个虚拟地址上,例如 0x4012A0 表示某个函数的入口。逆向时所谓的「引用偏移」,就是把这个地址作为证据锚点:读者拿到地址后,可以在反编译器中按 G 键跳转到该位置,亲眼确认那里的指令或数据是否与 AI 的描述吻合。
这正是 REA 区别于「让 LLM 凭训练记忆猜代码」的核心——大语言模型面对原始字节时极易编造看似合理的逻辑,而偏移地址把结论钉死在可复现的坐标上。需要补充的是,同一函数在不同工具、不同基址(Image Base)下显示的地址可能不同,对比时要注意统一加载基址或参考相对偏移(RVA),否则会得出「地址对不上」的误判。
为什么这个思路值得关注
REA 的设计体现出三个明确取向。
证据优先。 Agent 不凭空推断逻辑,而是引用确切的二进制偏移,把 LLM 的输出锚定在可验证的事实上。这对于安全分析和遗留系统维护尤其关键——错误结论的代价可能很高。
隐私优先。 分析在本地完成,不需要把专有软件上传到云端,企业环境中的合规障碍因此降低。
工作流整合。 不需要在 IDE 与独立逆向套件之间反复切换,分析结果直接出现在 AI 对话窗口中,减少了上下文切换成本。
适用人群与边界
REA 面向安全研究员、需要复刻功能的开发者,以及维护遗留代码的工程师。需要留意的是,它依赖外部反编译器,输出质量会受底层引擎和二进制混淆程度影响;引用偏移地址能提升可信度,但不能完全消除 AI 误读反编译结果的可能。对于高度混淆或加壳的样本,仍需要人工判断。
项目资源包括 GitHub 仓库(github.com/morluto/rea)、官网与指南(rea.tools)、npm 包(rea-agents)以及 Discord 社区。对希望在本地安全环境下把 AI 引入逆向流程的团队来说,这是一个值得评估的起点。
相关推荐

恒星究竟能有多大?最大恒星的物理极限
红超巨星是宇宙中体积最大的恒星,半径可达太阳的2000倍,吞没内太阳系。但恒星尺寸没有精确上限,模型预测可达15000倍太阳半径。质量最大的蓝色恒星体积远小于红超巨星——最大和最重是两回事。

苹果HomeView智能屏全功能解析:墙挂桌面两用,299美元
苹果发布299美元智能显示屏HomeView,支持壁挂和桌面两种安装方式,配备1200万像素摄像头实现面部识别,可控制智能家居、播放音乐、发送食谱到屏幕逐步跟做。本文全面解析HomeView的表盘、应用扩展、隐私保护和烹饪集成等核心功能。

承诺的新工作室去哪了?Craft Computing用五年时间给出答案
Craft Computing主理人回应观众质疑:承诺五年的新工作室因建设成本从3万暴涨至7.5万美元而搁浅,最终改为168平方英尺车库改造空间。频道收入因算法变化下滑,内容方向也将转向更务实的项目制作。