ARTICLE · 1228135
REA,软件的壁垒正在被拆掉
引言
Noah Gwok 在 X 上发过一条演示。他自己的电脑上装着微信,想看看存在本机的那些对话能不能换一种方式打开。他让 Codex 配合 REA 分析微信桌面客户端读本机聊天数据的过程,然后照着看到的东西,做出一个在浏览器里打开的页面。截图里是熟悉的会话列表、聊天气泡和一个导出按钮,聊天内容被他打了码。他自己估计,这件事花了大约十分钟。
REA 是一套供 AI 调用的逆向工程工具。它把分析程序的能力接给 Codex 这样的智能体,让 AI 能根据已有软件的行为编写新的实现。用户可以按自己的需要改造一项功能,软件公司也因此面对新的压力。功能越容易被重新实现,软件就越难只靠实现细节维持优势。产品应该服务谁、怎样改进,以及用户为什么愿意持续付费,都需要重新考虑。
从聊天记录到一个开关
Kintu gk 在自己的博客里记录了另一件事。他的 Sony WH-1000XM4 耳机有一个风噪抑制开关,在官方 App Sony Sound Connect 里步骤偏多。他想做的只是把它拿出来,做成一个打开就能切换的小 Android 应用。
他在自己手机上检查已经装好的那个官方 App,REA 帮他定位到和降噪设置相关的代码位置。中间有一段初始化代码没能成功反编译出来,他转而参考公开的 Sony 耳机协议资料,把连接逻辑补上。最后做出来的 XM4 Wind 能切换风噪抑制,也保留普通降噪开关。接上真实耳机之后,他测了这两项设置,并回读耳机状态确认命令真的生效。按他的记录,整个过程大约三十分钟,中途和智能体来回对话了多轮。

两位作者都从完整产品中选取了自己关心的部分。聊天记录的浏览方式、耳机设置的入口,可以按个人需要重新设计。原厂拥有完整产品,使用者也可以围绕某项功能做出更合用的小工具。
代码复杂、接口不公开,会增加重做这些功能的难度。别人需要调查数据和调用关系,才能编写自己的版本。REA 让 AI 可以承担其中一部分调查,把原先依赖专门经验的工作接入日常编程。
让模型去读别人的程序
复刻一项功能,首先要弄懂原程序在做什么:入口在哪,数据怎么流动,某个动作触发了什么。
Hopper、Ghidra、IDA 这类分析引擎负责检查编译后的程序。反汇编把机器指令转换为汇编表示,反编译可以整理出便于检查的近似代码,运行观察补充实际行为。
REA 把这些分析能力接给智能体,让 Codex 能定位函数、追踪调用,并读取相关资源。工具返回的代码位置、分析结果和未解问题会保留下来,供下一轮调查使用。智能体和作者据此判断还缺什么线索,再编写选定功能的新实现。

开发者可以把一部分逐层寻找线索的工作交给智能体,把精力用于决定要实现什么、怎样安排界面,以及哪些结果需要核对。原程序提供行为线索,新工具则可以选择自己的架构和操作方式。
把会计规则读出来重写一遍
lxistired 在 REA 项目的 GitHub 讨论区发帖,介绍的是一套更大的重建。他调查的对象是 QuickBooks Desktop for Mac 的试用版,希望理解它的计算规则,再编写自己的产品。
他关心的问题相当具体:库存金额是怎么算出来的;预算里不同类型的账户怎么确定正负号;对账余额是怎么形成的;现金收付制的报表走的是哪条分支。他用 REA 6.4.0 配合 Ghidra 检查这些会计逻辑,还解码了界面资源,看控件、布局和界面之间怎么连接,并用原生运行时观察窗口和动作。他既要知道结果怎么算,也要知道用户通过什么操作触发计算。
他随后用 Python 和 SQLite 编写了独立的本地应用 Ledger Reborn。公开的项目里能看到本地总账、借贷保持平衡的分录、发票和账单、银行流水 CSV 导入和匹配、移动加权平均的库存计算,以及报表和预算。仓库有源码、测试和样例数据,也发布了 Mac 和 Windows 的预览包。作者说,他用 QuickBooks 样本公司导出的报表对照过自己重建的结果。

会计软件积累的不只有按钮和页面,还有怎样把一次业务操作变成分录、怎样计算库存成本、怎样生成报表的实现方式。lxistired 用逆向分析理解这些行为,再用自己的数据模型重新组织。重做者可以更换技术栈、界面和数据库,围绕同一类业务另做一套产品,原有架构也就不再是唯一选择。
传统软件的生存空间
这些独立工具也会改变用户和软件团队的关系。用户可以先做出自己想要的版本,把需求从文字变成能够演示的操作。团队要判断的就更具体了:这个改动适合哪些人,能否并入现有产品,还是应该作为一个单独的小工具保留。
收费的理由也应该随之改变。一个入口、一组计算规则可以被别人重新实现,可靠保存数据、持续响应业务变化、在出错时解决问题,则需要团队长久投入。软件公司如果能替用户省下这些工作,持续付费才会有更具体的回报。

当用户能低成本重做自己需要的功能,为整套产品买单的必要性就会下降;当新团队能更快理解成熟软件的行为,老厂商多年积累的功能也就更难成为进入门槛。传统软件依靠封闭功能和整套产品长期收费的模式,会承受越来越直接的压力。竞争对手可以是一家新公司,也可以是用户为自己做的小工具,行业原有的产品边界和定价依据都可能被改写。
关注我们
Tech and Talk,关注 AI、科技与生活















































































