夜雨聆风学习资料网

ARTICLE · 1177957

没源码也能"抄"功能了:REA 让逆向工程一夜之间变成一句话

没源码也能"抄"功能了:REA 让逆向工程一夜之间变成一句话

没源码、没文档,但你想搞清楚一个 App 里某个功能是怎么实现的——甚至想照着思路做进自己的产品。

以前这是逆向工程师几周才能啃下来的硬活儿。现在你只要对 AI Agent 说一句话,它就自己跑去开 Ghidra、IDA 了。

这篇文章想聊的,是最近在 AI 开发者圈刷屏的 REA(Reverse Engineer Anything),以及它背后那个更值得想清楚的事:当逆向工程一夜之间从高手手艺变成人人能用的一句话,对开发者、对闭源软件行业到底意味着什么。

先把结论摊开:REA 本身没什么新技术,新的是它把这件事放权给了 AI,也放权给了普通人。

开头那个让人"大快人心"的故事

2026 年 10 月,一个叫 Brandon Thomas 的开发者做了一件让全网鼓掌的事。

起因挺朴素:他被 Adobe 的取消订阅费用恶心得受不了,于是决定反过来恶心回去——用 Claude Opus 5.5,把 Adobe 全家桶里 7 个软件逆向重写了一遍:

逆向版
对应 Adobe
PhotoCraft
Photoshop
VectorCraft
Illustrator
FilmCraft
Premiere Pro
LightCraft
Lightroom
EffectCraft
After Effects
DesignCraft
InDesign
PrintCraft
Acrobat

然后开源免费放出来。光 PhotoCraft 一个项目,不到 10 天就拿了 4.6 万 star。作者在 Hacker News 上写的是:

"Software is over. But for real. I just one-shotted Photoshop. The whole thing."

(软件完了。真的。我一把梭就把 Photoshop 整个搞定了。)

这个故事能刷屏,是因为它把"逆向工程"从围观者的想象里拉出来,砸成了可感知的现实:一个人,一个 AI,硬刚了一个巨头全家桶。

REA 到底在做什么

如果说 Thomas 那件事是"个人努力 + AI",REA 就是把这件事产品化、平民化的工具。

项目主页第一屏就这么写:

"在应用里看到一个想加入自己产品的功能?让智能体去帮你调查它。"

"即使没有源代码,智能体也可以检查应用、解释功能怎么工作、展示证据,并为你的项目实现类似功能。"

它把什么接起来了

逆向工程,字面意思就是从编译好的程序往回推,搞清楚它内部怎么写的。传统上这是安全研究员的绝活:在反编译器(Ghidra、IDA、Hopper)、反汇编器、调试器之间来回切,追调用链、翻字符串,一个功能拆上几天是家常便饭。

REA 干的事情,是把这一整套工具接到 AI 编程智能体上。接口用的是 MCP(Model Context Protocol),一种让 Claude Code、Codex、Cursor 这类 Agent 调用外部工具的通用协议。

装好之后,你对 Agent 说一句"弄清这个 app 的搜索功能怎么工作的",它自己会按这个流程跑:

1.打开目标程序,摸清整体结构和基本信息

2.按关键词搜索定位相关字符串

3.用 XRef(交叉引用)追踪这些字符串被哪些函数引用

4.沿着调用链一步步逼近核心逻辑

5.查看目标函数的伪代码和底层汇编,对照验证

6.最后给你交回函数、调用关系、反编译代码这条完整的证据链

官方文档给的标准流程就是:打开 binary → 搜索线索 → XRef → Call Graph → Decompile → 重建功能。

能逆向什么,比"拆 EXE"宽得多

REA 支持的目标远不止 Windows 程序:

• 原生程序:Mach-O、ELF、PE、macOS 的 .app(含 Swift/ObjC 元数据)

• 各类包:ZIP、APK、IPA、ASAR,可以不解压直接生成文件清单

• Electron 和 JS 应用:梳理入口点、模块、IPC 通道、preload 脚本、source map

• 网站:通过本地 Chrome DevTools 端点被动观察浏览器

• .NET(托管 PE/CLI):不需运行即可查元数据

• 版本差异分析:对比一个应用的两个版本,生成变更报告

为什么它能火:门槛被一脚踢开了

REA 真正变了的地方,是使用门槛。

以前想让 AI 帮你逆向,你得先是个会逆向的人:装好 IDA、配好插件、知道该问什么问题、看得懂汇编。这些门槛直接把绝大多数应用开发者挡在门外。

现在,一行命令就够了:

npx rea-agents setup

选好要接入的智能体(Claude Code / Codex / Cursor / Gemini CLI / Windsurf…),点头确认,配置就写好了。把它推上热榜的不是安全圈,而是 AI 博主和科技大号——这本身就说明了问题。

总结它走红的逻辑:技术不新,新的是用它的人。

这周逆向圈的战绩

案例一:3A 游戏被还原到逐字节一致

这波浪潮里最出圈的一份复盘,来自逆向开发者 Maurice Heumann。

他让十几个 Claude Code 和 Codex 智能体并行干活,把一款射击游戏 99% 的函数还原成了 C++ 源码,其中 83% 编译出来和原程序逐字节一致。

注意,他用的是 Hex-Rays 的官方 MCP,不是 REA。这恰恰说明一件事:AI 现在能把逆向做到"编译后字节完全一致"这种非对即错的精细程度,不是"大概还原了个意思",是真的逼近原代码。

案例二:逆向 Claude Code 本身

有人直接让 REA 去分析 Claude Code 本身——一个包含数千模块、几十 MB 压缩代码、复杂到传统逆向要面对海量 minified code 的庞大 Bundle。

方向找对了,但这个目标实在太大,REA 在深度分析过程中一度把 JavaScript Heap 跑爆了。"跑爆"本身是个信号:AI 啃它的劲头已经拉满。

案例三:逆向 Sony Sound Connect,"抄"进自己 App

腾讯云一篇技术文章记录了一个被作者称为"目前最接近真实商业 App 逆向"的案例:作者连接一台 Samsung S24 Ultra,让 Codex 用 REA 分析索尼的 Sound Connect App,然后独立开发了一个"打开 App 就能开启 Wind Noise Reduction"的安卓应用。

以前你看到一个软件里有意思的功能,只能从外部猜它是怎么做的;现在 Agent 能直接钻进程序内部,把实现链路一点点找出来,甚至帮你重建一个。

案例四:逆向 Adobe 全家桶

就是开头那个。再补一层细节:Thomas 这条路被称为净室设计(Clean Room)——"我没照着你写",而是在理解原理之后用另一种实现重建。当然,也有逆向者走另一条路,叫字节级匹配,"写得和你一模一样"。两条路都是这波浪潮的缩影。

案例五:免费玩老游戏

10 月初,一批老游戏突然能在浏览器里跑了:《光环:战斗进化》《半条命》《暗黑破坏神》《GTA5》《COD:现代战争 2》。虽然其中部分 3A 是因为旧源码外泄,但确实也受益于 AI 逆向的提速。

对开发者的真实影响

这部分是这篇文章最想聊的——除了"工具好用"之外,它对开发者这个群体的冲击。

逆向这门手艺在贬值,但没有死

过去逆向是高度依赖经验积累的活儿,不少安全研究员靠它在行业里立足。AI 降低门槛之后,一种职业焦虑在圈里蔓延:"我总能逆向别人"的护城河还有多深?

圈内清醒的人不少。《Practical Reverse Engineering》合著者 Elias Bachaalany 在 REA 刷屏时转了一条推介,开头就一个词:

炒作(Hype)。

他的意思是:这些工具老早就有了——GhidraMCP、IDA Pro MCP 去年就有了,"AI 接逆向工具"不是新物种,只是被重新包装了一下。

安全博主写得更具体:

• 没加壳的程序,AI 轻松拿下

• 轻度加壳,也行

• VMP 这类高强度虚拟化保护,目前还啃不动

• REA 连动态调试都没有

所以准确的说法不是"逆向死了",而是:逆向的上限被 AI 抬高了,但真正的硬骨头——强混淆、反调试、内核逻辑、动态分析——依然要高手来。对新手是福音,对高手是压力,对中间的"半吊子逆向"冲击最大。

Agent 在复制"从写代码到改仓库"的跃迁

有个精准的类比:Coding Agent 的路径是,过去 AI 帮你写几行代码,现在已经能自己读仓库、改代码、跑测试。REA 正在把同样的能力搬到逆向这个领域。

逆向工程正在从"人使用工具",慢慢变成"人提出问题,Agent 使用工具"。

这不是 Demo 了:从理解真实软件功能,到还原算法,再到 Differential Test 验证,Agent 已经能跑通完整的逆向闭环。也就是说,"读懂任何装进电脑的东西"正在变成基础能力。

护城河在被"逆向"这个动作本身瓦解

Eric S. Raymond(开源界的老人)说得更直白:软件保密时代快结束了,几乎所有能装进你电脑里的软件,都将失去"保密"这层护城河。

过去厂商靠不公开通信协议限制第三方接入;以后,凡是能装在你电脑里的东西,在事实层面都约等于开源。对做产品的人来说,这是最值得警醒的一点:你产品的护城河不能押在"代码别人看不懂"上,得押在体验、生态、服务、品牌这些更硬的地方。

有些东西还是拆不到的

• 放服务器上的逻辑拆不到:你能拆开装在自己电脑上的客户端,拆不开别人机房里的另一半

• 上下文会爆炸:已经有用户抱怨,REA 塞给智能体的工具说明太长,用不了多久就把上下文挤满

• 工具多不等于更好:x64dbg 作者 Duncan Ogilvie 说,他不认为给模型暴露更多工具它就能表现更好

必须说明:能逆向 ≠ 合法

法律上"逆向"和"照着做"是两件事

• 商业机密方面,最高法 2020 年司法解释明确:对公开渠道取得的产品做拆卸、测绘、分析拿到技术信息,不算侵犯商业秘密。

• 版权方面,《计算机软件保护条例》第十七条允许为学习研究软件设计思想和原理使用软件;《著作权法》第五十条把"计算机软件反向工程研究"列为可避开技术措施的情形之一。

• 但同一条例第六条也写得很清楚:保护不延及开发所用的思想、处理过程和操作方法。

危险在于:REA 把"人读反编译结果"和"人写新代码"这两件事中间的那道墙拆了——读反编译结果的是智能体,写代码的还是智能体,中间没有隔断。有人管这个叫"洗知识产权(washing IP)"。

三个真实的雷区

1.拆签过 NDA 的客户软件,再发到模型服务商,可能违约。REA 说分析在本机运行没错,但 Agent 理解分析结果时会把反编译代码片段、调用关系、字符串发给背后的模型 API。这一步就可能踩线。

2.被拆的软件公司手里握着用户协议和律师。真追究起来,站在风险正中间的永远只有发出指令的你。

3.模型服务商有底线。有人拆剪映时 Claude 拆到一半会卡、会被限制——这是模型侧的护栏在起作用,但拦在哪、怎么拦,由服务商定。

对做工具的我们:REA 最实在的用法

作为工具开发者,REA 对你最有价值的不是"拿来破解"或"恶心某个大厂",而是这三个正向用法:

竞品功能调研。 想看某个 App 的某项功能怎么实现?让 Agent 帮你拆,理解实现思路,再设计你自己的解法。理解 ≠ 复制。

学习理解原理。 把一个感兴趣的经典软件拆开看内部结构,是最高效的学习材料。

找回遗失/陈旧代码。 老项目源码丢了?用逆向还原。官方文档里甚至列了"恢复遗失源码"这个场景。

记住边界:理解是为了让你做得更好,不是为了照抄。从结论看实现,再长出你自己的实现,这才是它最健康的用法。

怎么开始(30 秒上手)

1.确认装好了 Node.js 和 npm

2.装机需要的逆向工具之一(Ghidra 是开源免费的,最友好)

3.在你选定的 Agent(Claude Code / Codex / Cursor 等)里跑:

npx rea-agents setup

4.选好 Agent、确认配置,就能对 Agent 说"帮我看下这个 app 的 XXX 功能怎么实现的"

最后

REA 这波热度,去掉"一周 10 万星"的喧嚣,剥开看其实就一句话:

逆向工程正在从"人使用工具",变成"人提出问题、Agent 使用工具"。

技术是旧的,被改变的是门槛和放权。AI 让"读代码、懂产品、看实现"这些原属少数人的硬活儿,变得可被一句话触发。

但要带着眼睛看两面:

• 乐观的一面:每个开发者都获得了一个能"读懂一切装进电脑的东西"的智能助手,学习、调研、做产品的上限被抬高了

• 冷静的一面:护城河不再押在"代码保密"上;高强度的逆向依然要高手;法律风险不会因为"工程师无感"就消失

对开发者来说,值得留下的不是"它能逆向软件",而是那个更大趋势的注脚——当 AI 已经能读懂别人写进二进制里的每一种聪明,我们能守住的,只剩"为什么做、为谁做、做得有多好"这几件事本身了。


参考与素材:极客公园《一周 10 万星,AI「逆向一切」,但大家不要过于兴奋》、36氪《软件完蛋了吗?REA 三天狂揽 12 万星》、腾讯云开发者社区《REA 爆火:AI Agent 开始自己做逆向工程了》、人人都是产品经理《AI 开始逆向一切》。

相关学习资料