夜雨聆风学习资料网

ARTICLE · 1163613

三天 12 万星:当 AI 学会逆向工程,软件开始"裸奔"

三天 12 万星:当 AI 学会逆向工程,软件开始"裸奔"

这两天,GitHub 上一个叫 REA(Reverse Engineer Anything)的项目,几乎霸占了所有技术社区的讨论区。

火到什么程度?截至 10 月 12 日,它的星标数停在 124,217,fork 27,911。作为对比,去年年底引爆全民"养龙虾"热潮、创下增长纪录的 OpenClaw,爆发第三天累计新增约 6 万颗星——REA 这条曲线,比当年的奇迹还要陡。

仓库此刻还在推送提交:2,485 次提交里,最新一次就发生在 20 分钟前。

项目地址:https://github.com/morluto/rea[1]

它做的事,README 里有一句很克制的原话:"通过 Agent 逆向分析一切,从应用行为一路深入到原生二进制层面(Reverse engineer anything with agents, from app behavior down to native binaries)"。

翻译成人话:把你手上的 AI 编程助手——Claude Code、Codex、Cursor、Gemini CLI 都行——通过 MCP 协议接到 Ghidra、Hopper、IDA 这些老牌逆向工具上。Agent 从此可以拆开一个没有源码的软件,追踪某项功能的实现线索,然后照着它再写一个出来。

安装只有一行命令:

npx rea-agents setup

能拆的东西,比想象中多:

  • 原生应用:Mach-O、ELF、PE 和 macOS .app 程序包,连 Swift 和 Objective-C 的元数据都能读;
  • Electron 和 JS 应用:不运行程序,静态梳理入口、模块、IPC 通道和 source map;
  • 安装包:ZIP、APK、IPA、ASAR,不解压就能生成文件清单;
  • 几个冷门但狠的:Go 编译产物里的构建信息、WASM 字节码、甚至以太坊智能合约(EVM)的调度选择器;
  • 网站:通过本地 Chrome DevTools 端点,被动观察你自己控制的浏览器;
  • 版本 diff:比较一个应用的两个版本,自动生成变更报告。

Replit CEO Ahmad Msad 的评价被大量转发:"AI 驱动的逆向工程和反编译领域正在发生的事情简直不可思议。很快,所有软件都可能事实上变成开源软件。"

过去四十年,软件生意的一部分底层逻辑,建立在"源码不可得"这个前提上:我写了代码、编译成二进制,你拿不到,所以你得付钱。REA 动摇的正是这个前提——当 AI 能读懂二进制、追调用链、还能生成重构代码,"拿不到源码"这件事,还能挡住谁?

社交媒体上的反应更直接:

"这些订阅制都该消失。贪得无厌,真让人无语。"

"如果这真能跑通,那以后就没有什么东西还算专有了!软件这下算是彻底完蛋了!"

1 给编程助手配一把反编译器

你大概率有过这种时刻:用某个 App,发现一个功能做得特别顺——离线搜索秒出结果,同步机制丝滑得不像话。你想让自己的产品也有一个,但它没源码、没文档,连怎么实现的都不知道。

以前遇到这种事只有一条路:学逆向工程。装一个反汇编器,啃它的 API,在字符串和符号堆里翻找,手动追调用图,在好几个工具之间来回倒腾。这是一门需要几年功底的硬功夫,绝大多数应用开发者根本没时间碰。

REA 换了个思路:这活儿,交给你的 AI 编程助手。

更准确地说,REA 是一个 TypeScript 编写的开源(MIT 许可)工具,本质上是在 AI Agent 和逆向工具之间架了一层调度。有网友打趣:这相当于"有人给 Claude Code 配了一个反编译器"。

举个例子,你可以对它说:

Understand how search works in the Notes app, show me the evidence,and build a similar feature for my project.

后台会发生什么,大致是这样一个过程:

拆包、反编译、追调用链、重写实现,每一步的结论都附带证据与局限——这是 REA 一个值得肯定的设计:它没有假装自己永远正确。

需要说清楚的是,REA 调用的这些逆向工具,没有一个是新的:Ghidra 2019 年开源,Hopper 的历史可以追溯到 2011 年,IDA 从上世纪 90 年代起就是逆向工程师的标配。REA 做的,是让 Agent 能调用它们,把过去需要老师傅手工串联的分析步骤,接进了编程工作流。

大模型进入逆向工程,也并非始于 REA。

早在 2022 年,纽约大学和卡尔加里大学的研究团队就在论文《Pop Quiz! Can a Large Language Model Help With Reverse Engineering?》里测试过 Codex 能否辅助逆向:让模型阅读反编译代码,判断函数用途、程序能力、变量名的可能取值。这开了用大模型解析反编译伪代码的先河,但当时的 AI,只是一个需要手动复制粘贴的"阅读理解外挂"。

随后几年,技术路线分化成两派:一派以南方科技大学开源的 LLM4Decompile 为代表,尝试绕过传统引擎,直接把机器码翻译成 C 源码;另一派就是 REA 这样的 Agent 架构——在大模型与 Ghidra、IDA 之间架桥,让 AI 长出"手和眼睛",自动提取符号、追踪调用链、写出能跑的落地代码。

真正让这件事出圈的,是今年 4 月一位资深安全人员的实战记录。

他从普通游戏一路拆到银行等级的 App。游戏类基本不在话下:Cocos2d 游戏靠纯静态分析就能识别出 Blowfish 算法并反推出 key;Unity 游戏靠观察密文特征猜出 Lua 注释格式,从而反推 XOR key。

真正让人意外的是银行 App。这类应用通常有多层加壳和混淆,带反注入、反调试、root 检测、模拟器检测一整套防护。按他事后的总结,AI 一层层分析、绕过了这些保护,最终在 root 过的模拟器上打开 App 并抓到了请求内容。

他用的工具是 Cursor 搭配 Claude Opus 4.6 high thinking,大部分时候 prompt 简单到离谱:"某个文件夹底下有个 apk,把它逆向还原成源码。"很多 App 的逆向时间在 30 分钟左右,按 Cursor 的计费不到 5 美元;用 Claude Code 拆一个 Unity 游戏花了 4000 万 token,约 27 美元。平均下来,30 美元上下。

他自己感叹:"那时我才意识到,我才是 AI 的限制器。"以前觉得 AI 办不到的事,其实是自己不敢让它去试。"只要你能给 AI 一个让他发挥的环境,确保他能看到足够的 log 而且验证对错,再给他够多时间,没有什么逆向不出来的。"

顺带一提,REA 仓库的提交记录里,专门有一条"明确负责任使用、保留第三方声明"的文档更新。工具是中性的,边界在于用它的人——授权协议、商业秘密、个人信息保护,逆向的合规红线在每个法域都不一样。这句话,应该写在每一次 analyze 之前。

2 克隆潮来了,护城河换了个地方?

逆向这件事,理论上早就可行,REA 只是把它递到了每个开发者的面前。

有网友提到一个现象:"我怀疑这就是为什么过去几天,我的 YouTube 推送里出现了大量给各种商业应用做 Vibe Code 克隆版的视频。从 Adobe 到 Microsoft Office 的旗舰产品,应有尽有。"

应用克隆不是新鲜事。当年有人把 Flappy Bird 换个名字重新发布,第二天就冒出一大堆仿制品。但现在是数不清的仿制品:只要有人想要某款软件的功能,就可能有人把它克隆出来。眼下挨刀的是小团队,但 Adobe 不会幸免——Photoshop、Illustrator,整套产品都有人做出了克隆版,某些方面还更好,做这件事的可能还不止是个人行为。

对 REA 本身,有网友实测后反馈:"REA 火成这样真不是吹的,我拿剪映和几个项目试了试,确实底裤都没了。"他提到看到别人某个功能做得好,顺着模块、路由、IPC 通信一路查到实现逻辑,在自己的项目里直接复现;还有一个更温情的用法——拯救没有源码的老软件:Agent 调用 Ghidra、Hopper 去读伪代码和汇编,甚至把老游戏里的算法精准还原出来。

那么问题来了:如果连没有源码的老软件都能被拆开、复现,软件公司的护城河在哪里?

技术专家徐昊的观点是:克隆能拿走的是代码,拿不走的是知识。面对一个没有源码的软件,重点从来不是"用另一门技术把它重写出来",而是推断它的业务逻辑,弄清楚它到底在干什么。"你把它重演出来,我觉得这东西没什么意义。"

"软件本身不是产品,软件中的知识才是。"放到 REA 的场景里:它能还原出一份看起来完整的功能实现,但"还原出代码"和"理解了这个软件"之间,还隔着一层东西——它为什么这样设计,业务规则是什么,哪些行为是刻意为之,哪些是历史包袱。

换句话说,写代码,从来不是一个软件公司的护城河。

出海内容营销平台 QuickCreator 联合创始人阎志涛的观点更直接:"REA 确实会进一步影响软件行业的生意模式,但要说这是软件的末日,我不认同。""如果源码一旦可以获得,软件生意就无法继续,那开源软件的商业模式早就应该不存在了。"

这个类比很扎实。很多开源项目的代码,本来就可以获取、研究,也可以在许可证允许的范围内使用和修改,但企业仍然愿意为商业订阅、托管和技术服务付费,这个现象已经存在很多年。以 Red Hat 为例,官方订阅说明里列出的价值包括:面向生产环境的软件、生命周期管理、兼容性、补丁和更新,以及技术支持和专家资源。客户付费买到的东西,明显超出下载一份代码。

企业当然可以自建团队把这些事做起来,但招聘、培训、经验积累、让这支团队长期存在,都是成本。版本发布以后谁来维护?依赖的组件出了问题,谁判断是否影响业务?多个产品放在一起使用,谁验证兼容性?这些工作不会因为代码公开了就自动完成。

这不意味着原有软件公司可以高枕无忧——服务体系本身也会被 AI 重塑。过去需要很多人完成的排查、文档整理、配置检查和部分实施工作,以后可能由更小的团队借助 AI 完成。如果新公司既能做出合适的产品,又能以更低成本提供可靠服务,它就有机会逐步建立客户信任。原来大厂不能因为自己过去拥有完整服务体系,就默认这种优势会永远保持下去。

回到 REA 本身,它改变的不是"软件有没有价值",而是"软件的价值靠什么支撑":当代码和功能越来越容易被复制,收费的基础就必须从"实现难度"和"信息不透明",转向对业务的理解、对客户的响应、对系统长期运行的保障。

护城河没有消失。它只是从"你看不到我的代码",挪到了"你拿不走我的服务能力和业务理解"。


参考资料:

  • REA 仓库与 README:github.com/morluto/rea(截至 2026-10-12:124,217 星 / 27,911 fork / MIT / TypeScript)
  • 《Pop Quiz! Can a Large Language Model Help With Reverse Engineering?》:arxiv.org/abs/2202.01142
  • 资深安全人员 AI 逆向实战记录:blog.huli.tw/2026/04/18/ai-reverse-engineering-op/

引用链接

[1]https://github.com/morluto/rea

相关学习资料