最近 REA 挺火,我也一直想试试。
如果你还不了解 REA,可以先简单把它理解成:一个让 AI Agent 可以分析软件、理解二进制程序的连接器。
本来周二就已经理解了相关内容,打算实测下给大家分享的,但是当时 REA 竟然不支持我的主力开发工具 TRAE。
不死心的我去了 REA 的 GitHub 仓库,发现社区里已经有人在推进 TRAE 的支持,而且已经有对应的 PR。
而周二之后,我一直在济南人工智能产业大会现场,于是,就到了现在。
周二计划发版,但是失败了,14号merge的PR
于是,晚饭后就开始这次尝试。
为了更好的把握 REA 对软件分析的效果,我没有找市面的软件,而是采用我自己开发的一个桌面小工具,并且没有在开发机上测试。
补充点知识
这次之前,我对“逆向”的理解也很初级,所以,先给大家分享下我和 AI 请教完的理解。
正常的软件开发大概是:
源码 -> 编译 -> EXE
而逆向则是反过来:
EXE -> 字符串 / API / 函数 / 汇编 -> 寻找证据 -> 推断程序逻辑 -> 理解软件
正向开发与逆向分析对照图
程序编译之后,虽然原来的变量名、注释、代码结构等信息可能已经消失,但它依然会留下很多痕迹。
比如:
• 程序里有哪些字符串;
• 调用了哪些系统 API;
• 有哪些函数;
• 函数之间如何调用;
• 使用了什么运行时和第三方库;
• 某些功能对应哪些代码。
而 Ghidra 这样的工具,就是帮助我们找出来这些痕迹。
而 REA 做的事情,是进一步让 Agent 能够调用这些逆向分析能力,然后自己去调查、分析和组织这些痕迹。
简单来说:
以前是人拿着 Ghidra 分析软件,现在是 Agent 调用 Ghidra 分析软件。
准备 TRAE 下的 REA 环境
言归正传。
前置条件包括:
• JDK:64 位完整 JDK 21 或更新版本,记得配置 JAVA_HOME;
• Ghidra:免费开源,压缩包即可使用,设置 GHIDRA_INSTALL_DIR 环境变量告诉 REA 它的路径。
• Node.js:22.x(≥22.19)、24.x(≥24.11) 或 26+
准备好之后,直接运行 REA 的 setup 流程。
npx rea-agents@latest setup
或者
npm install --global rea-agents``rea setup
然后选择 TRAE。
REA Setup 选择 TRAE
它会自动完成对应的配置,不需要再自己手动折腾一堆 MCP 配置。
配置完成,重新打开 TRAE,再确认 REA 的相关能力已经可以调用。
检查当前连接的REA MCP。 列出可用逆向分析工具。 确认是否能够调用Ghidra。
TRAE 中 REA 已成功接入
到这里,准备工作基本就结束了。
核心的实测记录
下面我们开始正式的逆向分析过程。
逆向分析环境
逆向目标是我自己开发的开源桌面小工具,本地应用管理器,这次逆向的目标只是其中一个功能:
运行中:该功能可以方便地让你看到各个端口是什么进程占用,并支持一件杀死这个占用的进程。
项目地址先放这里,感兴趣的可以查看,但先声明,还没做完全部的测试。
测试目标的文件夹是这个样子。
我们的你项目表
开始逆向分析。
弄清 C:\tools\target\DevNest.exe 应用的“运行中”如何工作,展示证据,并为我实现一个相似的electron 桌面软件。
这里挖了个坑,我的桌面软件其实是 tauri 应用,而不是 electron 应用。
32m39s后(这个时间仅供参考,我用的商务本,有点卡),逆向分析完成。
逆向分析结果
复刻,我就不展开了,因为复刻的本质其实是通过 AI Agent 基于逆向分析的结果给你又实现一个相似的软件。
一般的实测,也许到这里就足够了。
但是,我们有答案,那就更进一步验证下效果。
我把逆向分析的结果扔到了桌面小工具开发环境中,让 AI Agent 帮我检查了下。
检查结果
首先,整体的逆向分析的结果是正确的。
至于中间的2个实质错误,主要是因为我逆向的是周二的版本,我本地的代码已经进行了更新。
但,瑕不掩瑜,整体的逆向分析确实挺厉害的。
并且,我挖的坑,它也完美避过了(tauri、electron)。
TRAE+RAE分析过程
结语
总结一下今天的内容。
1. 成功验证了 REA 对 TRAE 的内置集成,大家可以不用再手动设置 MCP 了,一键安装终究是方便的。
2. 通过自己开发的软件,直观对比了 REA 逆向分析的效果。
另外,有 2 个比较常见的误解,强调下:
1. REA 只是 AI Agent 在逆向分析的连接器,这是我一直推荐的大家可以尝试的机会。
2. REA 的过程并不包括复刻,复刻是 AI Agent 根据逆向的证据进行的,是一次有更精准上下文的 Vibe Coding。
官网上也有说明
好了,REA 的实测就到这里,虽然晚了几天,但终究是完成了。