ARTICLE · 1246118
当AI开始通过逆向工程复制软件,软件公司的护城河还剩什么?
当AI开始通过逆向工程复制软件,软件公司的护城河还剩什么?
从爆红的REA逆向工程,到医疗软件的未来:代码越来越容易复制,真正的竞争力究竟在哪里? 2026年10月,一个叫REA的开源项目突然在GitHub上爆红,它的全称非常霸气:Reverse Engineer Anything,翻译过来就是逆向工程任何东西。 它宣称,借助AI Agent,可以分析没有源代码的软件,理解其中的功能,甚至重新开发出类似的程序。 这件事情引发了极大的讨论,过去,一家软件公司花了几年,投入几十名工程师,开发出一套复杂的软件。 源代码不公开,算法不公开,内部结构不公开,其他公司即使想模仿,也可能需要重新投入大量开发资源。 但现在,如果AI能够阅读二进制程序、分析运行逻辑,再重新生成代码,会发生什么? 一家软件公司辛辛苦苦开发几年的产品,会不会被别人用几天甚至几个小时复制出来? 如果真是这样,软件行业还怎么赚钱?那些依靠软件版权、技术复杂性建立起来的商业壁垒,会不会突然变得不堪一击? 我认为,这个问题比REA本身更加值得讨论,因为它可能触及未来软件产业最深刻的一次变化: 当编写代码越来越便宜,软件公司的价值究竟还剩下什么? 
REA到底是什么?它不是一台自动复制软件的机器 传统的软件开发,是从源代码开始,工程师编写代码,编译成程序,然后交给用户使用。 逆向工程则反过来,工程师拿到一个已经编译好的程序,通过分析它的指令、函数、数据结构和运行行为,推测它原来怎样工作。 过去,这是一项相当专业的工作,需要使用Ghidra、IDA、Hopper等工具,还要熟悉操作系统、汇编语言、编译器和程序内部结构,很多时候,分析几段复杂代码就要花费大量时间。 而REA带来的变化,是让AI Agent能够调用这些专业工具。 例如,你可以用自然语言提出:“分析这款软件的某个功能,找出它的实现逻辑,并为我的项目重新开发一个类似功能。” AI就可以调用逆向工具读取程序结构,查找相关函数,分析调用关系,研究输入与输出,生成新的实现代码,再尝试进行测试。 这听起来确实很厉害,但REA并不是发明了一种能够自动恢复所有原始源代码的神奇技术。 它更像一个连接器,把传统逆向工具和现代AI编程Agent连接起来,让AI能够完成过去需要专业工程师手工操作的分析流程。 它不会保证恢复原作者当年编写的代码,更不能保证把一个复杂商业系统完整复制出来。 但它确实显著降低了逆向分析的技术门槛。 
真实测试:AI已经能够分析并重做软件功能 2026年10月14日,法国技术博主Korben发表了一篇实际测试报告。 他使用Claude Code、REA和Ghidra,测试AI的逆向能力。 其中一个实验非常有代表性,他选择了Mac上一款名为Amphetamine的工具。 这个工具有一个功能:当指定应用正在运行时,阻止电脑自动进入睡眠状态。 这并不是特别复杂的功能,但如果不知道它的内部实现,仍然需要研究macOS的电源管理机制。 AI通过逆向分析发现,该程序使用系统电源管理断言,同时监测指定应用的运行状态。 随后,AI重新编写了一个小型Swift程序,测试结果表明,它能够实现同样的基本功能。 这说明AI确实能够从一个已有软件中理解功能逻辑,并重新开发出可以工作的程序。 但接下Korben决定进行对照测试,他不用REA,只让Claude Code直接调用Ghidra,再完成同样任务。 结果呢?也成功了,只是某些任务耗时更长。 例如这个功能重建测试使用REA约9分钟,不使用REA约16分钟,另外几个测试里,REA也不是每次都更快。 所以这次独立实验真正证明的,不是REA突然拥有了无所不能的复制能力。 而是今天的AI编程Agent,已经能够使用专业逆向工具,承担过去需要较高技术门槛的分析工作。 REA提高了工具的易用性和部分任务的效率。 真正改变行业的,是大模型的代码理解、工具调用和自主分析能力正在持续提高。 
学术研究也证明,AI逆向能力正在迅速进步 2026年10月,哥伦比亚大学相关研究团队公布了SRE-Bench。 这是一个专门评估AI软件逆向能力的测试体系。 研究人员设计了19个非公开程序,生成262个不同的二进制测试实例,覆盖固件、恶意软件、游戏、文件格式和网络协议等场景,还设计了44种不同的反分析保护机制,目的就是避免AI单纯依靠训练时记住的代码来回答问题。 在公开测试设置中,表现最好的模型在181个获得评分的实例里,有149个完全通过全部六项任务,比例约为82.3%。 这个数字很高,但需要注意由于安全限制等原因,还有81个实例没有纳入该模型的评分分母。 而且完成测试中的逆向任务,并不意味着可以完整复刻262个商业软件。 即使如此,这项研究仍然非常值得关注,它说明AI对复杂程序的理解能力已经进入一个新的阶段。 更重要的是这项能力仍然在快速进步,也许今天AI只能复刻一个软件的部分功能,明年可以复刻更多,几年以后,能够自动分析和重新实现的程序范围可能继续扩大。 软件公司不能因为今天还有不少东西难以复制,就认为自己的技术壁垒永远安全。 
但是,软件真的可以被全部复制吗? 复制一个软件的界面和复制一个软件的功能,以及复制一个软件的完整商业系统,这是三个完全不同的难度等级。 例如一个绘图软件,用户能看见的是菜单,工具栏,图形,颜色,连接线,保存按钮。 这些界面和基础功能,今天的AI已经能够比较快速地重新开发。 但如果是一套复杂的企业软件呢?事情就完全不同了。 以一家大型电商平台为例,你可以复制它的首页,复制购物车,复制商品展示界面,甚至复制部分订单流程。 但你能复制它的全部商品库存吗?能复制它的支付清算体系吗?能复制物流系统吗?能复制风控规则吗?能复制商家网络和数亿用户之间的交易关系吗? 因为大量真正有价值的能力,并不存在于用户能够下载的客户端程序里,而是运行在服务端,数据库里,业务系统里以及现实世界的商业组织中。 AI可以复制一个电商网站的外观,却不能因此复制整个电商企业。 同样,对于闭源大模型,即使研究者通过API获得大量输入输出,也不代表能够还原原始模型的全部权重、数据和训练过程。 所以逆向工程并不是没有边界,它能够降低理解与重建软件的成本,却不能凭空获得无法观察的数据和资源。 
那么,哪些软件公司可能最先受到冲击? 我认为,最危险的可能是两类软件公司。 第一类:主要靠功能本身赚钱的公司。 例如一些简单工具软件,文件格式转换,截图,图片批量处理,基础报表,常见文档处理,简单流程管理。 这些软件的功能相对明确,技术实现也比较容易验证。 过去用户可能愿意为一个功能支付几百元,因为自己开发不划算。 但如果AI能够快速开发一个足够好用的替代工具,那么用户购买软件的意愿就可能下降,这类企业必须依靠更好的体验、持续更新、可信安全和服务来保留价值。 第二类:依靠客户难以迁移来维持商业模式的软件公司。 因为有些软件公司真正的竞争优势,并不是技术特别先进,而是客户已经用了十几年。 历史数据都在里面,系统接口都围绕它开发,员工已经形成使用习惯,一旦更换,成本非常高。 所以即使软件不好用,界面过时,升级困难,收费越来越高客户也很难离开。 过去,这种客户锁定确实是一道非常强的商业壁垒。 但如果AI能够显著降低新系统开发、接口分析和数据迁移的成本,原本高昂的更换门槛就可能逐渐下降。 虽然,AI不会自动赋予用户获取所有数据的权利,也不会消除迁移过程中的合同、安全和业务连续性问题,但总体方向值得关注。 过去客户因为换不起软件而留下,未来可能变得越来越不可靠。 
AI真正威胁的,可能是软件公司的“技术债务” 这让我想起以前写过的一篇文章:《软件公司是如何被拖死的》。 那篇文章讨论了一个很现实的问题:为什么有些软件公司,客户越多,维护越困难? 明明产品卖到了几百家医院,理论上规模应该越来越大,结果却发现每一家医院都是一个不同版本,每个版本都有自己的特殊功能,不同工程师不断增加代码,新功能与老功能相互冲突,升级需要专门派人,一个小修改可能导致其他功能出现问题。 最后,软件公司被自己的历史代码拖得越来越沉重。 以前,这种复杂性有时候反而会形成一种奇怪的保护,因为竞争对手很难完全理解原系统,更难快速开发替代产品。 但AI时代可能改变这种局面,新进入者不必需要复刻旧系统几十年的全部代码。 它可能只需要理解真实业务需求,分析必要的数据结构,重新设计更简单的系统架构,利用AI快速开发和测试,然后逐步替代老系统。 这时候,原有公司拥有的几十万行历史代码,可能不再是一种值得炫耀的资产,反而是一种负担。 代码越多,不一定越有竞争力,架构越复杂,也不一定越难替代。 很多时候,真正先进的系统,恰恰是能够用更加简单、标准化的方法完成同样的工作。 不过,现有公司也可以利用AI分析旧代码、补齐测试、梳理依赖关系、逐步重构。AI并不是只会帮助后来者,它同样可以帮助老公司减轻技术债务,关键是企业愿不愿意主动改变。 
软件工程会不会因此失去价值? 我认为恰恰相反,AI越擅长写代码,真正的软件工程能力越重要。 编程,是把需求变成代码,而软件工程,则是让一个复杂系统长期、安全、可靠、可维护地运行。 例如架构怎样设计?数据库怎样组织?系统怎样扩容?权限怎样划分?出现错误怎样恢复?版本怎样兼容?多家客户怎样统一升级?系统怎样持续测试?如何保证服务不中断? 这些问题往往比编写某一个功能更加困难。 2026年发表在国际机器学习大会上的SWE-Bench Pro研究,也指出当前AI编程Agent在涉及多个文件、大型代码库和复杂系统集成的长期软件工程任务上,仍然存在明显能力差距。 当然,这些差距以后可能继续缩小,但软件工程中的责任与验证,并不会因为代码由AI生成就自动消失。 假设AI一天生成十万行代码,但其中存在一些隐藏错误,谁来发现?谁来测试?谁来决定是否可以上线?如果系统发生重大事故,又由谁负责? 所以我认为未来工程师的主要价值,可能逐渐从亲手编写多少代码,转向设计、验证和维护多么可靠的系统。 代码生产成本下降,并不意味着质量保证成本也会按照同样速度下降。 
医疗软件,可能是理解护城河变化最好的案例 我长期关注医院信息化,尤其是手术麻醉系统,所以我们不妨做一个思想实验。 假设今天一家创业公司,决定开发一套新的手麻系统。 它拿到市场上成熟的手麻软件,研究界面,分析客户端程序,整理业务流程,然后利用AI快速开发,患者列表,术前评估,术中麻醉记录,生命体征趋势,用药记录,术后访视甚至还能够生成漂亮的AI风险分析报告。 这些事情,在AI开发能力不断提高以后,确实可能变得容易得多,但这就意味着它已经拥有了一套能够进入大型三甲医院使用的手麻系统吗? 远远没有,因为真正的难题才刚刚开始。 第一个难题:医疗设备与信息系统接口 医院可能同时存在不同厂商、不同年代的设备,监护仪,麻醉机,输注泵,中央监测服务器,HIS,LIS,PACS,护理系统。 这些系统使用不同的接口、数据结构和通信机制,仅仅复制手麻系统的界面,并不能获得它与所有设备稳定通信的能力。 第二个难题:临床业务规则 同样一个麻醉事件,在不同医院可能有不同管理要求,手术排程,患者入室,麻醉开始,手术开始,术中用药,苏醒,PACU转入与转出,病历归档。 这些环节相互关联,系统不仅要记录数据,还要知道不同阶段应该允许什么操作、禁止什么操作。 第三个难题:长期可靠性 如果一个普通绘图软件突然崩溃,用户可能只是损失几分钟工作。 但如果手麻系统在手术过程中发生故障,影响患者信息、用药记录或关键临床数据,后果可能严重得多。 所以医疗软件必须考虑断网,断电,服务器故障,数据恢复,时间同步,错误操作,权限控制,以及完整的审计记录。 第四个难题:临床责任 即使AI能够帮助重新开发所有功能,也不代表新软件已经具备临床使用所需的验证和合规条件。 医院真正关心的是出现问题能否追溯?软件升级是否安全?患者数据是否完整?医疗质量是否有保障?厂商能否长期提供支持? 这些才是医疗软件真正难以复制的部分。 
未来软件公司可能重新洗牌 如果让我预测未来软件行业最重要的竞争优势,我会更加看重以下五个方面。 第一,真实业务理解。 知道客户需要什么,比知道某个按钮怎样实现更加重要,尤其是医疗、金融、工业等复杂行业。 第二,独特而合法的数据资源。 高质量、持续更新、拥有清晰使用权的数据,比普通程序代码更加难以积累。 但数据必须有合法来源和明确权限,不能把能够获取的数据都视为可以任意使用的资产。 第三,稳定的软件架构。 统一版本,模块化,标准化接口,自动化测试,快速部署,可持续升级。 这些能力能够决定软件公司是否可以服务成千上万个客户,而不被维护成本拖垮。 第四,长期客户关系和服务能力。 真正的企业客户购买的不是一份代码,而是能够持续可靠运行的业务能力。 第五,生态与持续创新。 开放必要接口,允许第三方开发,支持不同硬件和AI模型,让客户与合作伙伴愿意长期留在这个生态。 未来的优势可能越来越来自这些难以一次性复制的能力,而不是某个软件界面的独特设计。 
还有一道不能忽略的边界:法律 技术上能够逆向,并不等于可以任意复制别人的软件。 逆向工程本来就有很多正当用途,例如安全研究、兼容性开发、软件维护、故障分析,旧设备的驱动程序跨平台移植,手机 APP 的跨平台移植。 在中国,最高人民法院关于商业秘密的司法解释,也承认通过合法取得的产品进行适当反向工程,可以属于合法获取技术信息的方式。 但如果事先通过不正当手段获得商业秘密,再假借逆向工程进行使用,则不能因此免责。 另外,复制受到著作权保护的代码、图像资源,或者通过非法方式获取服务端数据,也可能构成侵权或其他违法行为。 美国对某些实现互操作性的逆向行为,同样规定了有条件的法律例外,并不是无限制许可。 所以未来AI复制软件的能力越强,企业就越需要区分独立开发类似功能和未经授权复制受保护的成果。 商业竞争当然应该鼓励创新,但创新不能简单理解成任何东西都可以免费拿走。 
写在最后:代码越来越便宜,软件真正的价值反而会更加清楚 回头看软件产业几十年的历史,会发现一个很有意思的变化。 最初,计算机非常昂贵,软件工程师也非常稀缺,谁能够开发软件,谁就拥有竞争优势。 后来编程语言、开发框架和开源社区不断发展,软件开发门槛逐渐降低,但整个产业并没有因此消失,反而出现了越来越多的软件公司。 现在AI又一次大幅降低软件开发成本,甚至开始让机器分析、理解和重新实现已经存在的程序,这确实会改变竞争格局。 一些过去开发成本很高的功能,可能迅速变成普通商品。 一些依赖封闭代码获得高额利润的公司,可能失去优势。 一些长期积累技术债务、却依靠客户迁移困难生存的企业,也可能面对新的竞争者。 但我并不认为这意味着整个软件产业会衰落,因为用户从来就不是为了购买代码而购买软件,用户购买的是软件解决问题的能力。 医院购买手麻系统,不是因为它有几十万行代码,而是因为它能够可靠地记录和管理麻醉过程。 企业购买ERP,不是为了欣赏它复杂的数据库结构,而是为了把生产、库存、财务和经营管理连接起来。 银行购买信息系统,不是为了拥有一个漂亮界面,而是为了确保交易安全、准确和持续运行。 AI可以让这些系统的开发成本下降,却不能自动解决所有业务、组织和责任问题。 所以我认为,AI逆向工程真正带来的,不是软件行业的终结,而是软件行业开始重新区分什么是容易复制的功能,什么是真正难以替代的价值。 对于软件公司来说,未来可能有两种命运。 一种公司继续依靠封闭代码、复杂系统和客户迁移成本维持市场地位,随着AI开发能力不断进步,它们的竞争优势可能逐渐被侵蚀。 另一种公司则主动利用AI简化代码,统一版本,开放标准接口,持续改善产品,积累行业经验,建立真正可靠的服务体系。 它们反而可能因为AI而更加强大。 AI不是简单地摧毁软件公司,而是可能加速淘汰那些没有真正创造足够价值的软件公司。 过去的软件护城河,可能是别人看不懂、写不出你的代码。 未来的软件护城河,应该是别人即使能够写出相似的代码,也很难提供与你同样优秀的产品和服务。 代码正在变得越来越便宜,而真正理解客户、持续创造价值的能力,可能反而越来越珍贵。 软件工程不会因为AI而消失,但软件公司依靠技术复杂性躺着赚钱的时代,可能正在走向终结。 
知而后行,行而求知。 从手术室到机房,从临床到系统。记录一名麻醉医生关于医疗AI、医院信息化与持续成长的探索。 —— 医路智行录 主要参考资料 1. REA官方GitHub项目:Reverse Engineer Anything 2. Korben,2026年10月14日:REA独立测试与对照实验 3. 哥伦比亚大学DAPLab:SRE-Bench逆向工程基准测试 4. REA官方案例:从DX-Ball可执行程序重建函数 5. ICML 2026:SWE-Bench Pro复杂软件工程任务研究 6. 最高人民法院:关于审理侵犯商业秘密民事案件适用法律若干问题的规定




























































































