夜雨聆风学习资料网

ARTICLE · 1209171

REA:当AI学会“扒光”一切软件,开源与闭源的终极对决

REA:当AI学会“扒光”一切软件,开源与闭源的终极对决
2026年10月,GitHub上一个叫REA的项目,用三天时间狂揽近8万颗星,热度直逼年初的OpenClaw。它正在做的是把半个世纪以来软件行业的“黑盒生意”连根拔起。

1 给AI装上一双“透视眼”

REA全称Reverse Engineer Anything,就是“逆向分析一切”。

传统逆向工程是什么?一个工程师坐在IDA或Ghidra面前,对着几万行汇编代码,花几天时间搞清楚一个函数在干什么。这是门手艺,也是门玄学——会的人少,门槛高,大厂们因此高枕无忧:只要不给源码,你就是看不懂我的黑盒子。

REA做的事情极其简单粗暴:把大模型和逆向工具拉到同一个房间里,让AI替你去“看”。

它的核心是一个基于MCP(模型上下文协议) 的“掮客”。你不需要懂什么叫ELF、什么叫EVM字节码,只需要像大爷一样下指令:“去,看看Notion的剪贴板桥接是怎么写的。”你的Claude Code或Cursor就会通过REA调用Ghidra、Hopper或IDA,反编译、读汇编、顺藤摸瓜找接口,最后用人类的语言向你汇报:“报告老板,它是这么干的,这是C++的重构代码,可以直接用。”

REA不替代任何反汇编工具,它充当的是Agent与分析工具之间的桥梁。把“反编译、分析、理解、实现”串成一条AI可以自主执行的工作流。

2 从DX-Ball到Notion,证据比答案更重要

REA的官方案例,展示了这套工作流的真实威力。

案例一:1996年的DX-Ball,字节级复刻。 目标问题是:游戏如何根据砖块在屏幕上的位置计算立体声声像?REA的反编译器输出几乎空白,只看到一个孤立的函数调用。于是调查下沉到汇编指令层,发现了一个被伪代码隐藏的栈上输入,顺着调用者追踪,确认那是砖块的屏幕坐标。两次read_bytes调用解码出浮点常量1.5625和500.0。最终用C重写的版本,在3205个行为测试用例上与原始x86代码完全一致,用同时期的Visual C++ 4.0编译器编译后,63个函数字节完全吻合。

案例二:Notion的剪贴板桥接。 追踪路径从Electron渲染进程的剪贴板API出发,穿过preload和IPC,一路追到主进程。发现两个关键细节:主进程有真实的发送者检查,只有Notion自己的页面才能写入剪贴板;复制的内容里藏着隐藏的块数据注释<!-- notionvc: <copy-id> -->,粘贴时用来恢复块数据。

案例三:逆向微信、支付宝、抖音。 社区的反应比官方案例更狂野。爆火当天,无数开发者涌入,用REA逆向分析Adobe全家桶、谷歌全家桶,甚至Codex和Claude Code本身。到了第三天,微信、支付宝、抖音等国民App全被社区用REA“扒了个遍”。

REA最精妙的设计是它怎么报告结果。一个靠猜测做逆向的Agent比没用更糟,因为它的猜测听起来和事实一样自信。REA的每个工具返回三样东西:结果、证据ID、以及完整的证据记录。证据保存在会话包中,可以导出、导入、对比。结果会明确说明哪些是确定的、哪些是未知的,而不是把不确定性平滑掉。

3 MCP架构与“证据优先”的设计哲学

REA的架构可以拆成三层。

第一层:MCP接口层。 REA通过MCP协议接入Claude Code、Codex、Cursor、Gemini CLI等主流Agent。安装只需一行命令npx rea-agents setup,流程会引导你选择Agent、查看配置变更、确认注册。部署完成后重启Agent即可生效。

第二层:分析引擎层。 原生二进制分析依赖Hopper、Ghidra或IDA之一。REA在用户批准后可以自动安装Hopper,也支持已有的Ghidra和IDA安装。静态JavaScript和.NET分析不需要原生引擎。Android APK需要JADX和JDK,固件分析依赖Binwalk或Unblob。

第三层:证据契约层。 这是REA与普通“AI辅助逆向”工具的根本区别。每个结果都绑定evidence_id和完整的证据记录。分析一个函数的证据可以直接传给compare_functions,检查文件的证据可以传给compare_artifacts。文件完整性检查默认失败即停止——如果字节与声明的哈希矛盾,分析终止,除非用户明确选择继续,此时矛盾字节会被隔离并记录。

这套“证据优先”的设计,让REA的结论可检查、可组合、可审计。对于安全研究和合规审计场景,这是刚需。

4 效率革命与法律雷区

无源码系统的维护与迁移。 企业经常遇到历史系统源码丢失、第三方SDK文档缺失、原开发者离职的情况。REA可以辅助分析程序接口、依赖关系和部分实现逻辑。

安全审计与恶意软件分析。 安全研究人员可以从可疑字符串出发,追踪调用链,判断其与文件、网络、进程行为的关系。

法律边界模糊。 用REA分析商业软件的功能,然后“参考”实现一个类似功能,是否构成著作权侵权?GitHub页面的免责声明只说“用户需自行取得授权并遵守法律”,技术上能做到,不代表法律上可以任意做。

运行时捕获有安全风险。 静态分析只读文件,但运行时捕获模式会以用户权限启动或交互目标程序。分析可疑软件前,必须先明确两种模式的差异。

供应链信任问题。 REA的OpenSSF Scorecard评分仅为4.8/10,代码审查和分支保护两项得分为0。对于要接入本地二进制分析的工具链,这是需要认真评估的风险。

5 当“黑盒生意”的护城河被填平

软件行业的“黑盒护城河”正在被AI系统性地瓦解。

过去几十年,软件公司靠什么建立壁垒?把核心算法编译成二进制,把业务逻辑藏在闭源SDK里,把数据格式设计成私有的。你可以看,可以用,但你不能“知道它是怎么做到的”。这个信息不对称,就是商业机密。

REA把这个不对称打碎了。当AI能穿透二进制层,理解一个功能的实现逻辑,并用另一种语言重新写一遍时,“闭源”的含金量正在急剧贬值。

功能级“微创新”的商业模式将受冲击。 那些靠一两个独家算法或交互设计撑起估值的SaaS公司,会发现自己的核心卖点被挂在GitHub上免费放送。

知识产权律师面临新的“心肌梗塞”。 当证明代码逻辑雷同变得和喝水一样容易时,现有的软件版权法体系面临压力。AI复刻的代码逻辑一致但语法全换,现有的“实质性相似”判定标准需要重新校准。

开源与闭源的竞争格局被改写。 过去,闭源软件的优势是“做得更好”;现在,REA让开源社区有了“扒下来改一改”的能力。Adobe全家桶被逆向、Office被尝试逆向、Codex和Claude Code本身也被逆向——这已经是一场全方位的“软件平权运动”。

技术本身没有善恶。REA的GitHub页面明确写着:“项目不支持非法或未授权使用。” 工具一旦开源,如何使用就取决于使用者。

当“能做到”和“可以做到”之间的距离被AI抹平,整个软件行业需要重新思考:什么是真正的护城河,什么只是暂时的信息差。

当AI学会“扒光”一切软件,靠黑盒建立的技术壁垒,正在从“资产”变成“待清算的负债”。

Github链接:https://github.com/morluto/rea

相关学习资料