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 最有意思的地方,是把“看懂别人的软件”和“为自己写出功能交互”变成了可能。从一个函数、一条协议或一种文件格式开始,就已经能解决很多以前想都不敢想的问题。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.