ARTICLE · 1163765
想看懂一个 App 功能怎么实现?REA 让 Agent 调用逆向工具
想看懂一个 App 功能怎么实现?REA 让 Agent 调用逆向工具
Windows XP 扫雷有一个玩家都熟悉的规则:第一次点击永远不会踩到雷。为什么,很少有人说得清。但答案就在程序代码里。
前几天,评测团队 GitTested 在测试 REA 时,把这个问题交给 Agent 查了一遍。Agent 调用了 Ghidra,一种常用的逆向分析工具,把扫雷程序还原成可读的代码,从第一次点击入手,找到了负责处理它的那一段。
这次测试用到的工具叫 REA,全名 Reverse Engineer Anything。想看懂一个 App 功能怎么实现,现在多了一条路径:把问题描述清楚,Agent 会调用逆向工具去查代码,再把查到的东西解释回来。
REA 是 MIT 许可的开源项目,在 GitHub 上已经有 11 万颗星。它通过一套叫 MCP 的标准接口,把 AI Agent 和各种逆向分析工具连起来。它不提供新的逆向引擎,Hopper、Ghidra、IDA 这些工具继续负责底层分析;REA 做的是把"该用什么工具、按什么顺序、怎么读结果"整理成 Agent 能直接调用的流程。支持的对象:原生程序、Electron 应用(用网页技术打包的桌面程序)、.NET 程序集、安卓 APK、网站、固件,都在范围内。

过去想搞懂一个没有源码的功能,先得会看汇编、会操作 IDA。现在这些问题可以先问 Agent:查完一段代码,人可以继续追问,也可以让它照着写一份实现并跑测试。
扫雷里的雷去哪了

GitTested 展示的反编译代码,首次点击若落在雷上,程序会移动雷并揭开该格。
这张截图就是 GitTested 那次测试留下的。Agent 找到的这段代码,会在首次点击落在雷上时,把雷移到别的格子,再揭开点击的位置。"不会踩雷"从一条游戏经验,变成了一段读得懂的代码。
从按钮追到文件
另一个案例来自 Kingy AI。他们用 REA 检查了一个开源 Electron 笔记应用的导出功能,想弄清楚点击导出之后,程序怎么把笔记写成 CSV 文件。Agent 沿着按钮的调用链找到负责写文件的代码,测试者按分析结果重写了导出程序。原版和重写版分别跑了 14 组输入,包括空标题、逗号、引号、换行和 Unicode,输出逐字节一致。
14 组输入全部对上,不过测试范围也小:公开的小型示例,没有启动桌面应用,也没有碰原生二进制。

Kingy AI 报道中的测试结果,14 组输入均与预期输出一致。
要准备什么
前置条件看分析对象。静态分析 JavaScript 或 .NET 程序,不需要装反汇编器;要深入原生二进制,就得在 Hopper、Ghidra、IDA 里配好一种。安装入口是一条命令:npx rea-agents setup,需要 Node.js 22.19 或更高版本。
数据方面要分清两层:被分析的应用在本地跑,不会上传;但分析结果会交给 Agent,模型服务商拿这些结果做什么,就要看各家政策了。
规则红线
REA 适合有明确授权的任务:审计自己维护的程序、排查安全问题、研究恶意软件、做兼容性分析、保存旧软件。
如果看中的是竞品 App 里的功能,想拆出来照着做,这其实属于项目的禁止规则:复制专有软件代码被明确禁止,绕过 DRM、许可校验、反作弊、未授权访问和游戏作弊,也都在禁止之列。软件许可和当地法律还可能进一步限制逆向分析。功能可以研究,复制专有代码不可以。
最后
扫雷那个问题,玩家熟悉了几十年,答案一直在代码里,只是没有几个人能亲手翻到。REA 把翻代码从一门手艺变成了一个可以交给 Agent 的环节,门槛大大降低。