ARTICLE · 1209566
闭源软件的保护变薄了:REA 带来的风险与机会

整整一周,那个问题一直在我脑子里打转。一个叫 REA 的仓库登上了 GitHub Trending 榜首。
REA 是什么?它到底有多危险?
REA 是“Reverse Engineer Anything”的缩写,意思是“逆向一切”。它能让 AI 编程智能体拆解编译后的应用,解释程序如何工作。
前几天,我在办公室聊起 REA。几个朋友已经在社交媒体上看过,其中一位说,自己继续开发应用的动力都被它打掉了。
就在前一周,他们还对手头的项目兴致勃勃。现在,让他们害怕的是:自己的应用会不会变得太容易被复制?
我们还聊到一些帖子,声称有人逆向了 Adobe 的多款产品。这件事远比传闻听起来复杂,后面再说。
网上的说法更加吓人。有人称,REA 已经让一些公司倒闭,打乱了其他团队的计划。
我信了,甚至想拿这句话作为文章开头。
但当我去寻找这些公司时,一家也没找到。
所以,REA 到底有多危险?根据我找到的信息,传闻中的损害尚未得到证实。但对于那些核心价值藏在二进制文件里的应用或游戏,风险确实存在,而且比我们大多数人以为的更近。
我是一名 iOS 工程师,日常开发证券交易应用。业余时间,我经营 JRDEVHUB,在 Medium 写文章,也在 Gumroad 出售开发者工具包。
因此,我带着两种身份研究 REA:一个交付二进制程序的工程师,以及一个出售可能被复制的产品的小生意经营者。
多年来,我一直依赖一道从未明说的防线。
理论上,任何人都能逆向我的应用。但这件事很枯燥:需要专业人员、反编译器,以及数周阅读 ARM64 汇编代码的耐心。
枯燥曾经就是那把锁。REA 把枯燥的部分交给了智能体。
下面是我的调查结果。
REA 实际能做什么
REA 的仓库是 github.com/morluto/rea,采用 MIT 许可证。维护者叫 morluto,一位名为 N0zoM1z0 的贡献者公布了其中两个演示背后的重建代码。
它的思路很简单。
你看中了别人应用中的某个功能,让智能体用 REA 研究。智能体检查编译后的应用,解释功能如何工作,展示证据,再帮助你构建自己的版本。
从技术上说,REA 是一个 MCP(模型上下文协议)服务端,同时提供 CLI。它用 TypeScript 编写,在 npm 上以 rea-agents 发布。
安装配置只需一条命令:
npx rea-agents setup选择你的智能体,例如 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等,批准配置修改,然后重启即可。你只需要较新版本的 Node.js。
对于原生 Mach-O、ELF 和 PE 二进制文件,REA 会驱动逆向工程人员已经在使用的工具:Hopper、Ghidra 或 IDA。它返回伪代码、汇编、字符串、符号和引用关系。
它还支持读取 Electron 和 JavaScript 应用、.NET 程序集,通过 JADX 分析 Android APK,以及研究固件、网站、已保存的网络抓包,甚至智能合约字节码。
作为 iOS 开发者,我最感兴趣的是,它理解 Apple 应用包的结构和 plist 文件。我们的 .app 包,并没有想象中那么私密。
分析在本地运行,每项结果都会附带“支撑结论的证据与局限”。但智能体的模型供应商仍然会看到工具返回的内容。记住这一点,后面还会谈到。
REA 网站上的三个案例,是大家兴奋的主要原因:
• 在 Notion 桌面应用中,智能体沿着剪贴板 API,从渲染进程追踪到 preload、IPC,最终进入主进程。 • 在老 DOS 游戏 DX-Ball 中,它用 C 重建了一段控制声音左右声道位置的例程。重建代码通过了来自原始代码的数千个测试用例,编译后的函数还达到了逐字节一致。 • 在 PC-98 平台的老射击游戏 TH04 中,它恢复了弹幕图案背后的数学逻辑。
DX-Ball 的结果,确实很难忽视。
它为什么突然爆火
REA 的增长非常突然。整个 9 月的大部分时间,它还是个安静的仓库。10 月初开始攀升,不到一周就登上了 GitHub Trending 榜首。
我读到的每篇文章,引用的星标数量都不同,因为大家写稿时,数字还在变化。比起数量,工具究竟能做什么更重要,所以这里不列数字。
它为什么会火?
社交媒体上的短帖起了很大作用。Matthew Berman 在 X 上发帖:“逆向一切,软件完了。”几天后,RoundtableSpace 账号又以“闭源已死”开头发帖,迅速传播。
它也确实省掉了一项苦差事。以前做逆向,需要挑选工具、学习界面、在不同程序之间搬运证据,再判断下一步应该检查什么。
REA 把整个循环交给了智能体。Startup Fortune 也指出,使用 REA 的人甚至可以完全跳过汇编代码。
时机同样推了一把,这也解释了我们在办公室讨论的 Adobe 传闻。
同一周,一名开发者发布了 ArtCraft:用 AI 构建的多款 Adobe 应用的开源仿制品。许多帖子把这两件事混在了一起。Kingy AI 核查后表示,没有找到 ArtCraft 使用 REA 的一手证据。
再往前几天,CrowdStrike 报告称,一名攻击者把 Claude 与另一个开源智能体 ARTEX 配合使用,攻击韩国金融企业。安全行业本来就对 AI 攻击工具感到紧张。
维护者也在持续更新。那一周,新版本不断发布,morluto 宣布最新版本“快了很多很多”。
如今,README 已经翻译成多种语言,包括印度尼西亚语。项目还专门声明,从未发行或认可任何加密代币。这说明,骗子也注意到了这波热度。
应用和游戏开发者为什么会喜欢它
它的大部分正面价值,都来自研究你有权分析的代码。
几乎每家公司都有这样的 SDK 或老旧库:写代码的人离开了,源码也不见了。
在我的日常工作中,应用集成了分析、归因等第三方 SDK,其中一些又被封装进内部框架。我确实花过不少时间,排查这种环境里的 Swift 模块接口错误。
如果一个工具能解释团队里没人写过的二进制程序,这才是我最想在工作中使用 REA 的地方。
互操作性也是一个合理用途。当第三方 SDK 的文档只停留在表面时,研究它实际上如何运行,一直是逆向工程的正常用途。学习某种实现技巧,例如笔记应用如何处理离线搜索,再编写自己的版本,也是如此。
游戏开发者可能获益最大。REA 的三个案例中,有两个是老游戏。
恢复经典游戏的物理机制或随机数行为,是游戏保存和模组社区几十年来一直手工完成的工作。有智能体操作 Ghidra,忠实重制就能更快一些。
在 iOS 上,仍然需要预期一些限制。morluto 解释,项目列出的 macOS 能力指的是“macOS 检查”,不应理解为支持 iOS 设备或越狱环境。
问题追踪区也曾有人报告,旧版本处理通用 Mach-O 二进制文件时失败。
REA 真的让公司倒闭了吗?
我没找到任何证据。
我搜索了新闻报道、Hacker News、Reddit、X,以及仓库自身的问题区,试图找到一家因为 REA 关闭或改变方向的公司。
一家也没有。也没有发现与它相关的诉讼或股价下跌。
人们有时会把那场被称为“SaaSpocalypse”的软件股抛售,与 REA 放在一起讨论。但那件事发生在 2 月,比 REA 登上热门榜早了几个月。CNBC 当时报道,Anthropic 发布的一批新智能体工具,引发软件股单日大跌。
如果你见过具体公司名称,请把来源发给我,我会更新文章。在那之前,我会把这种说法当成炒作。
不过,可能伤害公司的条件,已经存在了。
真正的危险在哪里
凡是交付到用户设备上的东西,如今都更容易被低成本地读懂。
Startup Fortune 写道,依赖二进制文件难以反编译来保护产品的厂商,应该假设这层保护“比一周前更薄了”。
Electron 应用、把业务逻辑放在设备上的移动应用、浏览器扩展,以及小型付费桌面工具,暴露程度最高。
信任客户端的游戏,也会遇到麻烦。金融科技工程师 Rafael Roman 提到游戏开发中的一条老规则:“客户端掌握在敌人手里。”
如果客户端可以直接告诉服务器,自己刚刚捡到了一大堆金币,游戏经济就会崩坏。REA 降低了找到这条捷径所需的技术门槛。
法律风险则落在复制者身上。REA 的 README 明确指出,用户需要自行确保获得授权并遵守法律。
包括 Adobe 在内的许多最终用户许可协议,都禁止逆向工程;美国、欧盟、英国和加拿大关于互操作性的例外,也有严格限制。
面对 AI 制作的仿制品,发行商已经会迅速行动。
playgta5.com 是一个 GTA V 浏览器移植项目,创建者称其由 AI 构建,上线数小时后便下线。Activision 也曾针对开发者制作的 AI 版《使命召唤》浏览器移植项目发出 DMCA 通知。这两个案例都没有被证实与 REA 有关。
复制出来的功能,还可能在伪代码体现不出的地方出问题。
一位在 Dev.to 评测文章下用越南语留言的读者说,某团队复制了 Notion 的离线搜索,却没有底层同步引擎,结果“用户重新联网时不断发生数据冲突”。
你自己的电脑也是风险的一部分。REA 的运行时捕获功能,会以你的用户权限运行目标程序或与其交互。如果二进制程序有恶意,它就会获得你所拥有的访问权限。
REA 对我的工作和生意意味着什么
工作中:金融科技 iOS 应用
我最近的一部分工作,是活动和奖励页面,也就是告诉用户已经完成任务、获得股票奖励的那些界面。
对于这类页面,REA 让一个问题变得迫切:究竟是谁决定用户符合资格,手机还是服务器?
在金融业务里,这个问题直接关系到钱。如果答案是“手机”,你就是在把钱送给那些有耐心研究的人。而有了 REA,他们连耐心都不太需要了。
没有安全团队批准,我也不会拿公司的发布构建去做 REA 分析,因为每项工具结果都会发送给模型供应商。
自己的生意:JRDEVHUB
业余时间,我在 Medium 写文章,也在 Gumroad 出售开发者产品,例如面向 iOS 工程师的 Claude Code 指南,以及 Ship It Solo 智能体工具包。
这些产品是 PDF、Markdown 文件、提示词和配置文件夹。买家付款之后,马上就能打开所有文件,本来就没有什么二进制程序可供 REA 分析。对于这些产品,REA 没有改变什么。
我的软件副项目,则是另一回事。
我开发了 Threadline,一个用于定时发布帖子的 Chrome 扩展,也一直计划为其中一个扩展加入订阅付费限制。
扩展交付的是 JavaScript,而 REA 甚至不用运行程序,就能读取 JavaScript 应用。如果把付费资格检查放在扩展内部,它会是最先被突破的部分,所以这项检查必须放在服务器上。
我还在开发 Heartwood Fall,也就是 Medium 开发日志系列里的那款低多边形游戏。它已经有了游戏内商店。如果商店将来涉及真实货币或在线进度,下面第三条建议,也同样适用于我。
REA 也指向一个商业机会。
我一直在考虑一个产品方向:帮助不懂技术的创始人,修复他们用 AI 通过氛围编程做出来的应用。
其中很多人发布了 AI 写的代码,却从未读过。现在,任何人都可以让智能体代为阅读。
这让修复工作变得更有必要,而 REA 这样的工具,也可能加快修复过程,前提是创始人拥有被检查应用的权利。
这周,我会对自己的应用做五件事
1. 在陌生人之前,先读一遍自己的二进制文件
开始时甚至不需要 REA。
从自己的发布归档中导出 IPA。App Store 下载的程序经过加密,因此要使用自己的构建。先看看外部人员最容易发现的字符串:
unzip -q "MyApp.ipa" -d "build"strings "build/Payload/MyApp.app/MyApp" \ | grep -iE 'api[_-]?key|secret|token|staging'如果公司允许,再让 REA 分析同一个构建的副本,问它:
解释这个构建如何判断用户是否拥有高级会员资格。展示证据,并列出所有可能在设备端被绕过的环节。重点寻找硬编码密钥和遗忘的调试接口。
一位 X 用户说,自己曾用 REA 从应用中提取出明文地图服务 API 密钥。我无法确认这件事,但这确实是容易随版本一起发布出去的错误。
凡是你能从自己的二进制文件里找到的东西,陌生人也能找到,而且可能更快。
2. 把决策移到服务器
下面这种模式,正是 REA 容易揭穿的问题:
// 由应用决定if UserDefaults.standard.bool(forKey: "isPremium") { unlockProFeatures()}更安全的版本是:
// 由服务器决定,应用只负责查询let entitlement = try await api.fetchEntitlement(for: user.id)if entitlement.isActive { unlockProFeatures()}第一种写法,只要找到那个键,就能修改它的值。
第二种写法仍然在手机上执行 if 判断,因此服务器还必须拒绝无资格账户发起的高级功能请求。这样,即使攻击者修改了二进制程序,也无法获得相应服务。
在我的业务里,定价规则、交易限额,以及任何判断错误就会造成资金损失的逻辑,都应该遵循同样的原则。
3. 别再信任游戏客户端
让客户端直接上报结果,就是在给作弊留机会:
{ "event": "loot", "gold": 10000 }让客户端上报发生了什么,再由服务器计算奖励:
{ "event": "chest_opened", "chestId": "c_142" }混淆可以拖慢分析速度。但当别人已经读懂客户端时,仍然能守住规则的,是服务端的最终裁决权。
4. 弄清分析数据去了哪里
REA 在本地分析,但智能体的模型供应商会收到工具结果。
在分析雇主或客户的二进制程序之前,检查供应商的数据政策,以及你签订的合同。
使用构建副本操作,因为运行时捕获会以你的权限运行目标程序。
5. 学习实现技巧,再编写自己的代码
研究一个功能如何工作,再构建自己的版本,是正常的工程实践。我们大多数人就是这样学过来的。
把别人产品里反编译出来的逻辑直接交付出去,是另一回事,也更可能引发诉讼。
研究功能是工程实践,直接发布反编译代码则可能留下侵权证据。
开发者们并没有达成共识
支持者认为,这会给安全工作带来重大变化。
一位 Hacker News 评论者指出,REA 展示了 AI 如今理解底层代码的能力,有望大幅降低应用安全工作的成本。
怀疑者的反驳也很直接。MindStudio 的上手评测认为,REA 更像一个连接器,而不是新的逆向工程技术。
他们尝试重建 macOS 的“预览”应用,结果没有使用 REA 的普通智能体先完成了任务。他们还指出,多数报道依赖星标增长图,真正的演示却不多。
Hacker News 上,一位看起来来自 ArtCraft 团队的评论者说,在如此受关注的项目上使用 REA,很可能招来诉讼。另一位则认为,那个讨论串“充满了机器人刷量的味道”。
仓库增长得如此迅速,出现一些怀疑也不奇怪。
所以,REA 到底有多危险?
没有证据表明,它已经让某家公司倒闭。
但它让读懂软件变便宜了,而这个变化不会倒退。
过去,应用内部逻辑还受到“研究起来太枯燥”这层保护。智能体不会觉得无聊。
那些真正的价值没有随二进制文件一起交付出去的应用和游戏,会更有底气。
对我来说,这意味着在工作中,把更多决策移到服务器;在自己的项目中,让付费权限控制远离客户端。
我也会这样告诉办公室里的朋友:继续把应用做出来,把值得别人复制的核心部分留在服务器上。
你的应用里,最敏感的哪条规则,仍然由设备端决定?















































































