夜雨聆风学习资料网

ARTICLE · 1178590

AI 开始拆软件的墙,但代码真不是护城河了吗?

AI 开始拆软件的墙,但代码真不是护城河了吗?

AI 开始拆软件的墙,但代码真不是护城河了吗?

先说一件事:这篇文章的由头,是一个我无法核实的数字。

网上流传一个叫 REA 的开源项目,据称(未经核实)上线三天 GitHub 拿了近八万 Star。这个数字我没查到可靠出处,star-history 上的曲线也没法确认。所以下面讨论的重点,不是“REA 这个项目到底多火”,而是“AI 逆向工程”这件事本身走到了哪一步、可能影响什么。如果哪天你发现那个 Star 数是编的,这篇文章的结论不用跟着作废——因为它本来就不是靠那个数字撑起来的。

另外,REA 的官方文档、支持哪些二进制格式、用的是 Ghidra 还是 IDA 后端、在什么测试集上跑过什么结果,我目前能拿到的信息都不足以支撑一个技术评价。所以下面凡是说到“REA 能做什么”,你都应该自动脑补成“REA 宣称能做什么”。这个区别很重要,我后面会反复回到它。

01 一、老周的那台设备

我有个朋友老周,在制造业做 IT。

他们厂里有台进口设备,用了快十五年。控制系统里有个老软件,负责把加工数据导出来。原厂早就不维护了,接口文档没有,源码想都别想。现在厂里要搞数字化改造,要把这台设备接进新系统,结果卡在这个软件上。

找原厂,对方说这个版本不支持了,建议整体换新设备,报价七位数。

老周说,他特别想把这个软件拆开看看,但厂里没人懂逆向工程。

后来他刷到一个叫 REA 的开源项目,说是让 AI 自动干这事的。他半夜给我发微信问:这玩意儿要是真能行,我是不是就不用求原厂了?

我说,先别激动。

这个故事我做了模糊处理,细节不保证和真实情况完全一致,你把它当成一个场景就行,不要当成案例。

02 二、逆向工程到底是怎么回事

先把最基本的问题说清楚。

逆向工程,简单说就是从已经存在的软件,反过来分析它是怎么工作的。

正常开发是:需求 → 设计 → 源代码 → 编译 → 软件。

逆向是反过来的:软件 → 二进制 → 反编译/汇编 → 程序逻辑 → 尝试还原功能。

打个比方。正常盖房子,你有图纸、有施工队、有材料清单。逆向工程呢?你拿到一栋已经盖好的楼,没图纸,没施工记录,连承重墙在哪都得靠敲敲打打判断。你要做的是画出这栋楼的结构图。

干这活得用一堆专业工具:IDA Pro、Ghidra、Binary Ninja、x64dbg、WinDbg,还有各种反编译器和调试器。这些工具存在很多年了,反编译技术也不是新东西。

REA 这类项目想做的,是把这一整套流程交给 AI。

根据其宣称的思路,大致是:传统逆向工具 + MCP + 大模型 + 自动化工作流。MCP 是 Anthropic 提出的一个接口标准,让大模型能调用外部工具。这个概括可能过度简化了,具体技术栈得看项目本身。

过去的大模型更像一个坐在办公室里的顾问,你把资料复制给它,它分析完告诉你怎么办。有了工具调用机制之后,AI 可以自己去调用逆向工具、自己去定位功能。

如果其宣称属实,工作流可能变成这样:你发现某个商业软件里有个功能挺有意思,比如复制粘贴时能自动识别某种格式做特殊处理。过去你想把这个功能扒出来,大概要找到负责剪贴板处理的代码、分析相关函数、跟踪调用关系、分析参数和数据结构、动态调试、验证判断、重新实现。这可能是经验丰富的逆向工程师几天甚至几周的工作。

REA 这类工具希望把过程变成一句自然语言:“帮我分析这个软件的剪贴板处理机制,并尽可能还原其实现逻辑。”

然后 AI 负责:定位 → 反编译 → 分析汇编 → 建立调用关系 → 理解逻辑 → 输出解释 → 尝试生成重构代码。

这里最有意思的不是“AI 会写代码”——那已经不算新闻了。有意思的是 AI 开始参与“理解机器已经编译好的代码”。

03 三、如果这件事成立,冲击的是什么

先声明:下面是条件推演,不是已经发生的事实。

软件行业过去有一个重要假设:代码虽然可以被破解,但破解成本很高。

很多软件的护城河不是“别人绝对看不到我的代码”,而是“别人即使看到了,也很难理解、复制和重构”。这就是工程复杂度。

一个大型商业软件可能有几百万行代码、几十年的历史包袱、大量底层模块、各种兼容性处理、各种数据库和协议。甚至还有大量“这个地方为什么这么写”——答案可能是“因为十五年前有个客户的老系统就是这么要求的”。

假设 AI 逆向能力持续进步,它可能主要侵蚀依赖信息不对称建立的那部分护城河。但这个“假设”有多大,得看下一节。

04 四、四个限制条件,每一个都很硬

“AI 能逆向软件”不等于“所有软件都能被复制”。如前面所说,能看懂,不等于能复制,更不等于复制之后还能正常商业化。

限制一:后端读不到。

如果软件跑在你自己的电脑上,你至少能拿到二进制、程序文件、动态库、运行时行为。客户端软件天然容易被研究。

但如果核心逻辑在服务器上呢?你的电脑通过 API 连到服务器,服务器连着数据库,核心业务逻辑都在里面。你手里只有请求和响应。服务器源码、数据库、内部算法、内部规则,你都看不到。

AI 再聪明,也没法凭空获得不存在于观察范围里的代码。

所以 AI 逆向对客户端软件的冲击,可能明显大于对纯云端软件的冲击。

限制二:混淆、加密、反调试。

商业软件不会站着等你拆。代码混淆、加壳、加密、反调试、反虚拟机、动态加载、完整性校验,甚至运行时才把真正的代码解密出来。

“AI 可以自动逆向”不等于“把 exe 扔进去,十分钟后得到完整源代码”。AI 能提高分析效率,但它不是魔法。

限制三:反编译出来的不是源代码。

原程序里有个函数叫 calculateRiskScore(customer, amount, date)。编译之后变成大量机器指令。反编译以后可能得到 int FUN_00418320(longlong a1, int a2, longlong a3)。

函数名没了,变量名没了,注释没了,部分数据结构没了,宏没了,原始设计意图也可能没了。

逆向工程实际上包含两件事:把机器码变成人能看的东西,以及理解这些东西为什么这样设计。第二件事才真正困难。AI 可能恰恰在第二件事上有突破——但这目前只是“可能”。

限制四:规模化验证缺失。

我目前没有找到任何公开信息,说明这类工具在真实复杂软件上稳定工作过。Demo 能跑通和工程可用之间,差距通常比想象的大。

把四个限制叠加起来,前面第三节那个“护城河被侵蚀”的判断,就要大幅收敛。我的看法是:AI 逆向如果持续进步,主要冲击的是客户端软件里依赖信息不对称建立的那部分护城河——也就是“我知道怎么做的,你不知道”这种优势。对云端服务、生态锁定、数据壁垒型的护城河,影响要小得多,因为这些护城河本来就不靠“代码保密”撑着。

05 五、真正可能值钱的方向,也许不是“偷别人软件”

有一个对比常被提起:AI 逆向最大的商业价值,可能不是帮你复制别人的软件,而是帮你理解自己都不敢动的老系统。

这个对比听起来很漂亮,但我不确定后者一定比前者价值大。

“复制别人软件”(做兼容层、做替代品)在商业上可能更直接、变现更快。Legacy 现代化项目周期长、定制化重、难以规模化,这是它的天然劣势。

不过有一个差异是实在的:法律风险。前者随时可能踩到著作权、商业秘密、软件许可协议;后者你处理的是自己买的、自己用的系统,法律上干净得多。

这是合规优势,不是商业优势,两者不能混为一谈。合规优势能不能转化成商业优势,取决于客户愿不愿意为“合法地理解自己的老系统”付钱。我倾向于认为,在金融、医疗、能源这类强监管行业,合规优势更容易转化成商业优势——因为这类客户本来就把合规成本算进预算里。但这只是我的倾向,没有数据支撑。

Legacy 系统现代化这个市场到底多大,我也没找到统一的权威数据。Gartner、IDC 有相关报告,但口径不一。只能说方向存在,规模数字需要自己核实。

工业软件这个场景倒是比较具体——以下为方向性观察,无量化数据。中国制造业有大量老旧工业软件、专用控制软件、CAD/CAM、PLC 相关软件、工业协议、老旧设备。很多设备的问题不是“没有软件”,而是“软件太老,但不能没有”。老周那台设备就是典型。

但这里也有个问题:AI 能分析一个工业控制软件,可什么地方不能动?什么协议必须保持?什么参数意味着设备风险?哪些修改会导致生产线停机?AI 不一定知道,真正懂这些东西的人知道。

所以更可能的形态是:AI 逆向能力 + 行业知识 + 数据 + 服务能力。单独一个逆向能力,可能很快就变成基础设施,值钱的东西往上移动。

06 六、“代码不再是核心竞争力”,这句话对多少?

我的判断是:对一部分,不对另一部分。

代码本身的稀缺性确实在下降。以前一个优秀程序员一天写五百行,普通人写五十行。现在 AI 可能让普通程序员也能生成五百行。“会写代码”的门槛在降低。

但“软件工程没有价值了”是完全不同的命题,而且我认为是错的。

真正稀缺的东西可能从“写代码”转移到“知道应该写什么”。

有人喜欢把护城河排个序:代码 < 算法 < 工程能力 < 数据 < 行业知识 < 客户关系。这个排序看起来很工整,但我不打算用它。原因很简单:没有依据说明为什么是这个顺序,也没法说清各层之间的权重。很多 To B 软件公司恰恰是客户关系驱动而非数据驱动,硬排一个序反而会误导。

更稳妥的说法是:这几样东西的相对重要性在变化。从近年 SaaS 公司的估值逻辑和并购案例看,数据资产和客户关系的权重确实在上升,代码和通用算法的相对权重在下降。这是个人观察,不是量化结论。具体到某家公司,哪一样更关键,得看这家公司靠什么活着。

07 七、版权这堵墙,比技术墙更难翻

技术上“能不能做”和法律上“能不能做”,是两个完全不同的问题。

把一个商业软件扔给 AI 分析,生成一个高度类似的实现,然后卖出去——这合法吗?

答案绝对不是“因为 AI 做的,所以合法”。

AI 不会自动消除著作权、商业秘密、软件许可协议、合同限制、反不正当竞争,以及各地的逆向工程规则。美国 DMCA §1201 有例外条款,欧盟 Software Directive 2009/24/EC 有互操作性例外,但这些都有严格的适用条件,不是想用就能用。

拿欧盟那条互操作性例外举个例子。它的大致逻辑是:为了让你自己写的程序能和别人的程序互通,允许在必要范围内反编译对方代码,但有几个前提——必须是为了实现互操作、必须是必要范围、不能把获得的信息用于开发实质相似的软件、不能损害权利人的正当利益。注意最后两条:如果你反编译的目的就是做一个功能高度相似的替代品,那大概率不落入例外。AI 逆向场景下,这条边界怎么划,目前判例很少。

其他几个问题同样悬着:AI 生成代码的著作权归谁?训练数据的合法性怎么算?这些问题各国都没有明确答案。这一节我只提出问题,不展开论证。具体案件需要咨询专业律师。

但方向是清楚的:软件行业的护城河,可能从“代码保密”部分转向“合法使用权”。过去软件公司说“你看不到我的代码”,未来可能更强调“即使你看懂了,也没有合法权利复制和商业化”。

08 八、程序员会失业吗?

这一节是我的个人判断,没有数据支撑。

被替代概率比较高的工作:简单 CRUD、基础代码搬运、简单接口开发、重复性代码、基础文档整理、简单适配工作。

注意,我这里没有把“简单逆向分析”列进去。前面说过逆向很难,AI 不是魔法,把一个刚说很难的事情又列为“容易被替代”,是自相矛盾的。逆向的门槛即使被 AI 降低,也不等于它变成了简单工作。

可能新出现的工作:AI Agent 工程、AI 代码审查、系统架构、安全、AI 治理、数据工程、行业软件、Legacy 系统迁移、AI 生成代码的验证。

真正危险的可能不是“程序员这个职业”,而是“只会写代码的程序员”。这个判断和 Excel 出现之后的会计有点像——Excel 没有消灭财务,但消灭了大量纯手工算账的岗位。

还有一个值得警惕的问题:AI 也会成为攻击工具。这类技术有正面用途,也可能被用于恶意软件分析、漏洞研究、破解商业软件、绕过授权。密码学、网络扫描、调试器、反编译器、模糊测试,本身都没有天然的善恶属性,问题是谁在用、用来做什么。

所以 AI 逆向越强,安全行业反而可能越重视软件保护、代码混淆、运行时防护和供应链安全。

09 九、别被 Star 数带偏

关于那个“三天八万 Star”,我再说几句。

GitHub Star、下载量、趋势榜能说明“很多人关注”,不能说明“它有巨大商业价值”。尤其一个项目突然爆火的时候,更要区分关注度和实际使用量。

GitHub 上几十万 Star 的项目,不一定比几千 Star 但被大量企业部署的项目更有商业价值。

甚至“爆火”本身在 AI 时代也可能是一种营销手段。一个项目可以通过 GitHub、Twitter/X、YouTube、小红书、B站、Hacker News 迅速传播,形成飞轮:爆火 → 更多人关注 → 更多 Star → 更容易上榜 → 更多媒体报道 → 更爆火。

所以看到“三天八万 Star”,该问的是:这些 Star 是真实活跃用户吗?有多少人长期使用?有多少真实商业案例?它到底解决了什么以前无法解决的问题?

这篇文章开头我就说了,这个数字我核实不了。所以后面所有推论,都不应该建立在这个数字上。

10 十、REA 是不是“划时代”?

我不会轻易下这个结论。

说“REA 发明了 AI 逆向工程”,不准确。说“REA 只是把反编译器接上了大模型”,又可能低估了它降低使用门槛的意义。

更合适的理解是:如果其宣称的能力被验证,REA 这类工具重要的不是发明了新的逆向技术,而是把原本只有专业逆向工程师才能使用的一整套复杂工具链,开始变成普通人可以通过自然语言调用的工作流。

这和 ChatGPT 刚出现时有点像。计算器早就存在,搜索引擎早就存在,数据库早就存在。但当它们被放进一个自然语言接口,使用门槛突然下降了。

REA 可能在发生类似的事:不是创造逆向工程,而是降低逆向工程的门槛。

但必须承认,这是一个比较大的判断。事实只是“一个 AI 逆向工具受到了很多关注”,而叙事已经推到了“软件行业护城河迁移”的高度。这两者之间的距离,需要用真实的技术验证和商业案例来填,目前填不上。

我的倾向是:如果 REA 的宣称能力被验证,它更可能是一个重要的“门槛降低事件”,而不是“技术发明事件”。这个区别听起来咬文嚼字,但决定了你应该关注它什么——关注它让谁开始能做以前做不了的事,而不是关注它发明了什么新技术。

还有一个经常被忽略的点:以前一个人想逆向复杂软件,需要汇编知识、操作系统知识、C/C++、调试能力、二进制分析、大量经验。如果 AI 能替掉其中相当一部分工作,那么一个只懂业务的人,也可能开始做过去只有专业工程师才能做的事。

技术能力正在从“个人技能”变成“AI 可以调用的基础设施”。这件事的影响面,可能比“AI 会不会写代码”更宽。

但“相当一部分”是多少,我不知道,任何具体百分比都是瞎猜。

11 十一、重新回答标题里的问题

代码真的不再是核心竞争力了吗?

我的答案是:代码正在从“稀缺资产”变成“越来越便宜的生产资料”,但这不意味着软件没有护城河。如前面所说,能看懂不等于能复制,能复制不等于能商业化。

过去写代码等于能力,现在写代码是 AI 可以大量提供的基础能力。未来值钱的可能是数据、行业理解、服务能力这几样东西——它们不是并列关系,而是相互依赖的:数据来自具体场景,场景需要行业理解,行业理解要靠服务能力积累。具体到一家公司,哪一样更关键,得看这家公司靠什么活着。

REA 只是其中一个信号。今天 AI 在读代码,明天可能在读专利、读图纸、读数据库、读工业协议、读老系统、读企业流程。

至于老周那台设备——我让他先别急着把全部希望押在这类工具上。技术上行不行,得看实际效果;法律上行不行,得看当地规则;商业上行不行,得看有没有人愿意为这个兼容层买单。三个问题,一个都不能少。

12 值得继续观察的四件事

如果后续跟踪这类项目,我不会太关注它的 Star 还能不能从八万涨到十万。我会看四件事:

第一,能不能稳定处理复杂真实软件,而不是 Demo?

第二,能不能从客户端进一步处理复杂服务端系统?

第三,有没有真正的企业级商业案例?

第四,有没有形成围绕 AI 逆向的新工具生态?

这四个问题如果逐渐有肯定答案,那它就不只是一个 GitHub 爆款项目,而可能是软件行业的一项基础能力正在商品化。

至于现在——目前证据不足,还不能下结论。

相关学习资料