ARTICLE · 1136394
给 AI 装上"逆向工程"的手:没源码,也能拆开一个 App 看它怎么跑
❝前几天在抖音刷到 @李白 | AI创造力实验室 的「Vibe Coding 工具箱」系列,第 9 集讲的是一个叫 REA 的项目。视频里那句话挺戳我:"看到一个功能不错,就把它拆开看看。"❞
>
❝我本来以为又是个包装概念的东西,结果去 GitHub 扒了一圈:「12300 Star、MIT 协议、今天还在提交代码」。这东西不是玩具,是真的把「逆向工程」塞进了你的 AI 编程助手。❞
一、先说一个 Vibe Coding 绕不过去的尴尬
现在用 AI 写代码,写新功能其实挺爽的。但有一类需求,AI 基本帮不上忙:
「你想知道别人的产品是怎么做出来的。」
比如你在某个 App 里看到一个交互特别顺、某个网站的数据接口设计得很妙、某个桌面工具处理大文件的策略很聪明——你很想搞明白它是怎么实现的,然后用自己的技术栈复刻一个。
这时候你把界面截图丢给 AI,它能跟你聊 UI 设计,但再往下问:
这个功能的入口在哪? 数据是从哪来的、怎么存的? 它是本地算的还是调接口的? 我要是自己写,该从哪一步开始?
AI 就哑了。因为它只"看见"了成品的外壳,看不见里面的骨架。
「说白了:AI 会写代码,但它不会"看别人的代码"——尤其是那些根本没给你代码的东西。」
REA 就是补这一块的。
二、REA 是什么
一句话:「给 AI 编程助手装一个逆向工程的 MCP。」
它把反编译、二进制分析、运行时观察这些传统上只有安全工程师才折腾的活儿,打包成 AI Agent 可以直接调用的工具。你不用记那些反汇编器的命令,直接用自然语言下指令,它自己去拆。
官方那句描述很实在:
❝Reverse engineer anything with agents, from app behavior down to native binaries.❞
❝用 Agent 逆向任何东西,从应用行为一路下探到原生二进制。❞
「📌 项目信息」
morluto/rea | |
| 「12300」 | |
| 「MIT」 | |
rea-agents | |
npx rea-agents setup |
三、它到底能拆什么
这是我觉得 REA 最能打的地方——覆盖范围是真的广,不是只能啃一两种文件格式:
「原生二进制」
macOS 的 Mach-O、Linux 的 ELF、Windows 的 PE,以及 macOS 的 .app 应用包,都能做反汇编和反编译级别的分析。
「JavaScript / Electron」
这个可能是对做独立开发的人最有用的。模块结构、导入关系、source map、前端路由、IPC 通信、本地存储、原生插件,全都能扒出来。「而且这一类不需要任何反编译引擎」,纯静态就能干。
「桌面软件」
Electron 应用、部分原生 App 的包结构、资源文件、plist 配置。
「.NET」
元数据、CIL 中间代码,甚至能做构建版本之间的差异对比。
「网站」
接 Chrome 的调试协议(CDP)去观察页面结构、网络请求元数据、脚本、截图。
「Android APK」
内置 headless JADX 做静态分析,不用你手动开图形界面。
「固件」
Linux 上能用 binwalk / unblob 拆固件包——路由器、IoT 设备那种。
「各种归档」
目录、ZIP、APK、IPA、ASAR、plist、Apple 资源目录,都能当输入。
四、背后是三个"引擎"在干活
REA 本身不是一个全新的反编译器——它更像一个「调度层」,把业界成熟的逆向工具接进来:
- 「Ghidra」
:NSA 开源的,免费,官方安装包里自带 - 「Hopper」
:macOS 上口碑很好的商业反汇编器,「需要你自己买」(有 demo 可以试) - 「IDA Pro」
:有官方 adapter,你自己装了它就能用
这个设计挺聪明的:它不重复造轮子,而是把已有的强工具用 MCP 协议"喂"给 AI。
五、最聪明的设计:它给的不是工具,是"调查方法"
大部分工具类项目,就是把 API 列出来让你自己组合。REA 不一样,它内置了一套「调查模型」,分三步:
- 「Decompile(反编译)」
——先恢复出可读的代码、字符串、命名,把黑盒变白盒 - 「Understand(理解)」
——跨调用链解释这段功能到底在干什么 - 「Recreate(重建)」
——用你自己的技术栈,把同样的功能重新实现一遍
注意第三步,这是它和"逆向工具"最大的区别:「它的终点不是让你看懂,是让你做出来。」
而且它对每个结论都要求给出「证据链、置信度、以及局限说明」。这一点我觉得特别诚实——它会明确告诉你"这一段我推不出来"。
六、怎么用
装起来比我预想的简单:
# 一键安装 + 自动配置你的 AI 助手 npx rea-agents setup体检一下环境有没有问题
npx -y rea-agents@latest doctor
doctor 命令很实用,能直接告诉你缺什么依赖——比如你没装 Java,Ghidra 就跑不起来,它会明确报出来。
环境要求:
- 「Node.js 22.19+ / 24.11+ / 26+」
macOS 12+、Ubuntu 24.04+、Fedora 41+、64 位 Arch
它对主流 AI 编程助手的支持也挺全的:Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、VS Code、GitHub Copilot CLI 等一大票。装完基本不用手动配。
如果你想手动配 MCP,长这样:
{ "mcpServers": { "rea": { "command": "npx", "args": ["-y", "rea-agents@4.1.0", "mcp"] } } }七、我核实过的几个数据
因为看了不少"起来就号称自己史上最强"的项目,我拿到手习惯先回一手源头对一遍:
- 「Star 数」
:12300(GitHub API 实时拉的,不是截图里的数字) - 「开发活跃度」
:最后提交时间就是「今天」,README 里挂着「每日热门仓库第 3 名」的徽章,不是躺在那儿的僵尸项目 - 「迭代节奏」
:npm 包 rea-agents从 7 月 13 日发 1.0.0 到现在,「不到 3 个月发了 25 个版本」,10 月 5 日发 4.0.0、10 月 6 日发 4.1.0——这个节奏是真的在快速迭代 - 「生态位置」
:仓库 topics 里同时打着 mcp、reverse-engineering、ghidra、hopper、decompiler、ctf,说明它瞄准的就是"AI × 逆向"这个交叉位置 - 「协议」
:MIT,商用没有法律障碍
一个比较客观的判断:「这是一个真有人用、有人提 issue(111 个 open issue)、作者在持续投入的项目,不是 PR 稿堆出来的热度。」
八、三个门槛,我觉得你上之前得先知道
「1. 它不保证还原出原始源码。」
官方写得很清楚:任何反编译器都无法保证还原原始源码。它给你的是"可理解、可复现的结构",不是"原封不动的代码"。指望一键还原整个项目的人,会失望。
「2. 引擎要自己搞。」
纯粹的 JS/Electron 分析不用引擎,这没问题。但你要是想拆原生二进制,得配 Ghidra(免费但吃 Java 环境)或者买 Hopper。这中间有时间成本。
「3. Windows 端的原生二进制分析还是实验状态。」
官方 roadmap 里明确把 Windows x64 的 Ghidra 支持标成 P0(优先级最高但在早期阶段),目前只有 25 个只读操作,而且数据变更类的操作还没放开。macOS / Linux 是主力平台。
另外补充一句实话:「"没观察到"不等于"没发生"」。运行时观察这类手段,抓不到的东西不能反推成"它不存在"——这个官方自己也承认。
九、法律这条线,我必须提一句
REA 在仓库里放了专门的免责声明,大意是:「这个工具只提供给合法的逆向研究、分析和重建使用,使用者需要自己取得授权并遵守当地法律。」
这不是客套话,是认真的。
逆向工程在不同国家和地区的合法性边界差异非常大——有的地方为了保护"互操作性"和"学习研究"留出了空间,有的地方对规避技术保护措施管得很严。这部分我没有资格给你下法律结论,「唯一稳妥的做法就是:只拆你拥有或明确获得授权的软件,商用前咨询专业意见。」
别拿它去拆你不该拆的东西,这条比什么技巧都重要。
十、谁适合用,谁别凑热闹
「这三类人,我建议你去看看:」
- 「想研究竞品的独立开发者」
——尤其是做桌面/Electron 应用的,这套流程能帮你把别人的设计决策看清楚,然后用自己的栈做出更好的版本 - 「安全研究和 CTF 选手」
——把一堆散装工具收进一个 MCP,用自然语言驱动,效率提升是实打实的 - 「要给老旧系统写替代品的人」
——手上有个没人维护的老软件,没有源码但必须重写,这类工具是唯一的出路
「这两类人,我觉得可以先等等:」
- 「想"一键克隆别人 App"的」
——官方明确说了它不自动克隆应用,这个期待方向就是错的 - 「不想配环境、只想点鼠标的」
——碰上原生二进制那部分,你还是得跟 Ghidra 或者 Hopper 打交道
最后
我个人对这类项目的判断标准很简单:「它是不是把一件原来只有少数人能干的事,变得普通人也能上手了?」
逆向工程以前是安全圈的专属技能,门槛高、工具散、学习曲线陡。REA 没有让这件事变得更"简单",但它让这件事变得「更"可对话"了」——你不用先成为专家才能提问,你可以先提问,再在过程中慢慢弄懂。
这个方向我觉得是对的。
「GitHub 地址:https://github.com/morluto/rea」
「官网文档:https://morluto.github.io/rea/」
「快速开始:npx rea-agents setup」
你平时有没有遇到过"想复刻某个功能,但完全不知道从哪下手"的情况?或者你已经玩过 REA 了?评论区聊聊,我想听听有没有人真的拿它做出东西来。