REA 最近的增长有点离谱。前脚还有人截图说它到了 13.2 万 Star,写稿时 GitHub 页面已经显示约 14.2 万 Star。

大家已经开始拿 AI 做了很多逆向的小工具:手环、空调、游戏、安卓 App、Electron 软件,甚至是几十年前的 DOS 程序。以前逆向工程是程序员的活,现在只要会写提示词,也能让 Agent 先找线索、追调用链,再把结果做成可运行的代码。

REA 是 Reverse Engineer Anything 的缩写。它把 Hopper、Ghidra、IDA、JADX 和浏览器观测能力接给 Claude Code、Codex、Cursor 等 Agent。它负责“看软件”,Agent 负责判断下一步查什么,最后再为你写出新实现。

打开网易新闻 查看精彩图片

01 照着成品,重建一个功能

这是 REA 最标准的用法。把已安装的 App 交给 Agent,让它追踪某个功能用到的页面、模块、IPC 和原生函数,再为自己的项目写一版。

有人用 Codex + REA 分析 Claude Slides 的打包脚本,重建了幻灯片编辑功能;还有人做了 macOS 「预览」的对照实验。

只用 Claude 时完成得更快,加入 REA 的版本在缩放、旋转、标注和保存等行为上更接近原应用。这类任务适合研究一个产品的交互和技术路径,再做成符合自己技术栈的实现。

02 给现有 App 打补丁,改掉不喜欢的交互

重建整个产品很重,找到一处功能开关就轻得多。社区中流传的 Instagram 实验就是这种思路:对一个约 240MB、包含大量类的安卓安装包做静态分析,找到 Reels 相关路径后打补丁,做出更符合个人使用习惯的客户端。

这个案例的具体数字和结果暂无公开工程可复测,可以学的是路线:先搜索资源名、类名和路由,再沿引用找到可控制的入口。调试自有或获得授权的客户端时,这比尝试还原全部源码更实用。

03 拆游戏、做 Mod,还能抢救老游戏

X 上最火的展示之一,是作者称用 Opus 5.5 在不到 30 分钟内将一款已购 Steam 游戏反编译为 C#,并在 Unity 里运行。

REA 官方案例更扎实。它从 DX-Ball 里恢复了声音左右定位计算,重建代码通过 3205 组原始 x86 输入测试;另一个案例从 PC-98 游戏 TH04 的 16 位指令中恢复子弹环角度计算。对 Mod 作者和保护老游戏的开发者来说,找出一个关键函数就可以开工。

04 读取可穿戴设备,把数据留在本地

Goose 项目逆向了 WHOOP 5.0 手环的蓝牙通信,尝试在 iPhone 上直接读取心率、HRV、血氧、温度和动作等信号,并在设备端本地处理。

可穿戴设备很适合做逆向。先分析官方 App 的 APK 、蓝牙 GATT 服务和数据包,再写一个最小客户端,就能做私有健康仪表盘、导出原始数据,或把旧设备接入 Home Assistant。

05 给家电做本地控制,统一收进一个入口

很多很有趣的案例,比如用 REA + Codex 分析智能马桶微信小程序的蓝牙通信,大约半小时就能做出了 Mac 菜单栏翻盖控制。

类似方式还能用在打印机、空调、空气检测仪、净化器和灯具上。目标不需要是“反编译整个 App”,只要找到配网、设备发现、状态查询和开关命令,就能写成语音控制、快捷指令或家庭自动化。具体品牌案例多为作者展示,协议和源码公开程度各不相同。

也就意味着有更多的设备能进智能家居。

06 给已停产配件和冷门硬件补驱动

软件不更新,硬件却还好好的,这是逆向工程的传统优势区。社区有人解析 Apple TV 遥控器的蓝牙消息,把它做成 Linux 电脑输入设备;还有人为 Windows 不支持的蓝牙手柄编写 ViGEm 兼容层。

对打印机、鼠标、手柄、仪器和老配件,你可以让 Agent 对比官方 App 发出的 USB、蓝牙或网络消息,识别设备、读状态,再逐个复现必需指令。这个场景的价值不是新鲜感,是让本来要吃灰的硬件继续工作。

07 破解文件格式,做迁移、导出和编辑器

有时候,最麻烦的不是功能,是文件格式。社区已经有人分析 GarageBand 工程格式,让 AI 编曲工作流能使用本地乐器;也有人分析 Apple Notes 的数据结构,演示了迁移文件夹、笔记和图片。

Axure 的 .rp 格式也有类似尝试:先理解文件的内部结构,再做成 CLI 和 MCP 编辑工具。对旧文档、设计稿、专有数据库和未公开导出接口的工具,这个用法往往比复制 UI 更有价值。

08 把老软件移植到新平台

老程序最大的问题,往往是源码没了,开发环境也没了。AI 逆向可以把二进制里的核心逻辑逐段恢复,再用现代语言重写。

《Firefighter》案例从 DOS 二进制中恢复 Pascal 逻辑,再改写为 Rust;Urban Terror 浏览器移植则找出了引擎与字节码布局不匹配的问题,作者报告最终做出能连多人服务器的浏览器版。这类任务的目标很清楚:保住可观察的行为,换掉已经跑不起来的外壳。

09 还原关键算法,用测试证明对不对

逆向一个小算法,常常比重建整个 App 更可靠。REA 案例里有人分析 Windows 计算器的模型 DLL,恢复了加法和乘法场景下不同的百分比规则;还有人从 Aegis 中提取一次性密码计算路径,对重建结果做交叉比较。

正确做法是把原程序当作“行为裁判”。先收集多组输入输出,再让 Agent 推断规则、写新实现,最后跑差分测试。这样得到的不只是“看起来像”的代码,还有证明它在哪些边界条件下一致的测试。

10 做软件审计,找隐藏逻辑和版本变化

REA 不只能“照着做”,也很适合了解一段软件真正做了什么。有测试者特意做了一个带折扣规则和隐藏调试入口的 Electron 小应用,再看 REA 能找出多少;另一个测试发现,它能找到直接写出的 IPC 通道名,对字符串拼接生成的名称会漏掉,并且会把这个限制写进结果。

对自有软件和获得授权的样本,可以让它查认证、本地存储、更新、网络端点和功能开关,也可以对比两个版本的证据包,找出新增或改变的路径。安全团队、兼容性开发者和接手旧系统的人,都能直接用上。

打开网易新闻 查看精彩图片

从一个具体问题开始

REA 本身采用 MIT 许可证,要求 Node.js 22.19+、24.11+ 或 26+,并需要 npm。安装和配置 Agent 的入口就是一条命令:

npx rea-agents setup

第一次不要丢给它“复制整个 App”这种复杂任务。从一个能验收的小问题开始,例如“这个 App 的离线搜索使用什么索引”、“这个蓝牙设备的开关命令是什么”、“新版本修改了哪段认证流程”。问题越具体,Agent 越容易把字符串、引用、伪代码和运行时行为连成一条可验证的证据链。

REA 最有意思的地方,是把“看懂别人的软件”和“为自己写出功能交互”变成了可能。从一个函数、一条协议或一种文件格式开始,就已经能解决很多以前想都不敢想的问题。