REA:让AI代理五步逆向分析任意应用

REA 让 AI 编程代理通过 MCP 驱动 Ghidra、IDA 等工具,本地完成逆向分析。
REA 是一个开源项目,定位为 AI 编程代理与传统逆向工具之间的调度层。它通过 MCP 协议接入 ClaudeCode 等代理,把自然语言请求转译为对 Ghidra、IDA、Hopper 的调用,支持原生二进制、Electron 应用、.NET 程序和网站等多类目标。工作流程分为提出需求、连接 REA、驱动工具、选择目标、输出报告五步,最终报告为每个结论附带证据与局限性说明,且分析全程在本地完成。文章提醒只从 GitHub、REA.tools、NPM 官方渠道安装,并仅分析拥有或获授权的软件。
什么是 REA?
REA(Reverse Engineer Anything)是一个开源项目,让 AI 编程代理能够逆向分析任意应用。根据视频介绍,该项目在 GitHub 上已获得超过 35 万颗星。它的核心思路很直接:你不需要自己打开 Ghidra 或 IDA 手动分析,而是让 ClaudeCode 这类编程代理通过 MCP 协议连接 REA,由 REA 驱动你已有的逆向工具完成分析。

这个定位解决了逆向工程的一个老问题:工具链复杂、上手门槛高。REA 本身不替代 Ghidra、IDA 或 Hopper,而是充当 AI 代理与这些专业工具之间的调度层。你保留熟悉的分析工具,AI 负责发出指令、解读结果、整理报告。
五步工作流程拆解
视频将 REA 的使用归纳为五个步骤,逻辑上可以分为“请求—连接—驱动—目标—输出”五个环节。
第一步:向编程代理提出分析需求
你在 ClaudeCode 等代理中描述想理解的功能,比如“这个应用是如何处理登录验证的”。代理把自然语言需求转化为逆向分析任务。
第二步:通过 MCP 服务器连接 REA
代理以 MCP 服务器的方式接入 REA。MCP(Model Context Protocol)是让 AI 代理调用外部工具的协议层,REA 借此把逆向能力暴露给代理。
MCP(Model Context Protocol)是 Anthropic 于 2024 年底提出的开放协议,用于标准化 AI 代理与外部工具、数据源之间的交互。它的核心抽象是“服务器”暴露一组工具(tools)或资源(resources),代理通过 JSON-RPC 风格的调用请求执行具体操作并取回结构化结果。与传统的函数调用相比,MCP 把工具的发现、参数描述和调用生命周期统一起来,使同一个代理可以即插即用地接入不同厂商实现的工具。在 REA 的场景中,REA 作为 MCP 服务器把逆向操作封装成代理可调用的工具,代理无需了解 Ghidra 或 IDA 的具体命令,只需按协议发起请求。
第三步:REA 驱动已有逆向工具
REA 调用的不是自研引擎,而是 Ghidra、IDA、Hopper 这些业界常用工具。代理发出指令,REA 转译并驱动工具执行,再把结果回传给代理。
Ghidra、IDA 和 Hopper 是逆向工程领域的三款主流工具,定位略有差异。Ghidra 由 NSA 开源,免费且支持反汇编、反编译和多架构,适合预算有限的团队;IDA Pro 是商业工具,反编译质量和调试集成度高,是行业长期标准;Hopper 面向 macOS 生态,价格较低、界面友好。三者的共同点是都提供脚本接口:Ghidra 支持 Java/Python 脚本,IDA 支持 IDAPython,Hopper 提供 Python API。REA 能驱动这些工具,本质上是通过调用它们的脚本接口来下发分析指令并读取结果,因此“复用成熟工具链”并不等于重新实现反编译器,而是把已有能力编排起来。
第四步:支持多种目标类型
分析对象覆盖面较广:原生二进制、Electron 应用、.NET 程序,甚至网站。这让 REA 的适用范围超出传统二进制逆向场景。

Electron 应用和 .NET 程序的分析路径与原生二进制有本质区别。Electron 应用打包了 Chromium 和 Node.js 运行时,实际业务逻辑往往位于 asar 归档中的 JavaScript 文件,分析重点在于解包 asar、还原源码结构,而非反汇编机器码。.NET 程序编译为 CIL 中间语言,通常可以用 ILSpy 等工具直接反编译出接近源码的 C# 代码,难度低于原生二进制。网站分析则涉及前端 JavaScript 与网络请求。REA 把这些异构目标统一在同一个自然语言交互层下,意味着代理需要按目标类型选择不同的底层工具和策略,这也是其“调度层”定位的体现。
第五步:输出带证据的报告
最终产出是一份报告,每个结论都附带证据和局限性说明。这一点比“给出答案”更有价值——逆向分析的可靠性取决于证据链,AI 生成的结论如果没有可追溯的依据,很难被信任。
实际使用建议
视频作者给出了自己的尝试路径:先完成命令配置,然后让 ClaudeCode 理解某个功能、展示证据,并尝试构建类似功能。这种“理解—验证—复现”的用法,把逆向分析从单纯的窥探变成了学习手段。

安装渠道要谨慎
作者特别提醒,只从官方渠道安装:GitHub、REA.tools 和 NPM。市面上存在仿冒版本。开源工具被抢注或仿冒并不罕见,安装来源直接关系到代码安全。

合规边界
最重要的一条:只分析你拥有或获得授权分析的软件,并遵守相关许可证。逆向工程在法律上存在灰色地带,不同司法辖区对互操作性分析、安全研究的豁免范围不同。工具本身中立,使用者的合规意识才是底线。
逆向工程的法律地位因司法辖区而异,常见的豁免框架包括互操作性目的、安全研究和学术分析。在美国,DMCA 第 1201 条禁止规避技术保护措施,但设有若干例外;欧盟《软件指令》允许为互操作性进行反编译。在中国,《计算机软件保护条例》允许为学习和研究软件内含的设计思想而使用软件,但不得侵犯著作权。此外,许多商业软件的最终用户许可协议(EULA)明确禁止逆向,违约与侵权是两条不同的法律路径。开源许可证也可能对衍生分析提出要求。因此“获得授权”不仅指所有权,还包括许可证和合同层面的许可,分析前应逐项确认。
值得关注的几个细节
全本地运行。 视频强调所有分析都在你自己的机器上完成。对处理敏感二进制或不愿上传样本的团队来说,这是关键卖点。
AI 代理作为交互层。 REA 的价值不在于自动化程度,而在于把逆向工程的操作门槛降到了自然语言层面。你仍然需要理解报告中的证据,但不必记住每个工具的调用细节。
证据与局限并重。 报告同时给出结论、证据和局限,这种输出设计承认了逆向分析的不确定性,比给出确定答案更符合工程现实。
适用人群与场景
安全研究人员可以用它加速样本初筛;开发者在做互操作性开发时,可以借此理解第三方协议实现;学习逆向的初学者则能把 AI 当作引导者,逐步理解工具输出。不过需要清楚,REA 不会替你判断证据的可靠性,分析结论仍需要人工复核。
开源、本地运行、复用成熟工具链,这三点让 REA 在 AI 辅助逆向这个方向上成为一个值得关注的方案。是否适合你的工作流,取决于你对证据链的要求和对合规边界的把握。
相关推荐

GitHub日报·10月25日:IDE开始自己长成你的样子

给编码Agent装上听觉:AirShot如何补齐声音反馈闭环
AirShot为编码Agent补上音频感知能力:纯CPU离线运行,支持CLI与MCP两种调用方式,MCP模式避免20-40秒模型加载延迟。Critic模块对照7部专业发布片打分并给出带时间戳的修改建议,可注册进Cloud Code无需显卡。

MCP协议解析:让AI智能体拥有工具与记忆
MCP协议让AI智能体安全接入Gmail、Slack等工具并拥有持久记忆。本文解析MCP的连接工具、添加记忆、定义目标三步循环,说明它如何消除重复劳动,让AI从聊天工具变成可落地的生产力系统。