← 资讯与洞察

把逆向工程交给智能体:大模型读懂二进制的真实进度与五年走向

「AI 能不能做逆向」这个问法本身就是错的。逆向不是一件事,是五件事:读、还原、推断、验证、决策。这篇按能力层拆开,先给传统工具链的基线,再给大模型的三条接入范式与公开基准数字,然后划出能交给智能体的任务范围、明确不能碰的边界,最后给出未来五年的四条推演和三个不确定。

关于这件事,网上有两种声音都很省事:一种说「大模型已经能反编译了,代码保密没意义了」,另一种说「AI 只会瞎编,逆向还得靠人」。两种说法都跳过了同一个问题——具体是哪一步被替代了、替换到什么精度、代价是多少。这篇不选边,只做拆解与对账:把能力对应到可验证的证据上,把判断标成判断。

01先把问题拆开:逆向不是一件事,是五件事

「逆向工程」在日常语境里被当成一个动作,实际做起来是一条流水线,每一段的失败模式都不同。把它拆成五层,才能谈得上「AI 做到哪了」——否则讨论的其实是五种不同能力的平均值。

能力层具体做什么失败时的表现怎么验证做对了
读反汇编、识别函数边界、还原调用关系把数据误判成指令,函数切错位置控制流图与运行时调用栈对得上
还原反编译成类 C 代码、恢复类型与结构体布局编译不过,或编译过但行为不等价重新编译后单元测试通过
推断命名、猜协议、识别库与算法特征命名看似合理但指错对象与样本行为、字符串、系统调用互证
验证构造输入、跑差分、确认理解是否正确把「看起来对」当成「确实对」同一路径多次运行结果稳定
决策判断值不值得继续、下一步查哪里在无关分支上无限展开预算内是否收敛到结论

大模型擅长的位置很集中:读与推断的初稿、验证环节的用例构造。它不擅长的是「知道自己错了」——这件事必须由外部可执行的东西兜住,也就是下面反复出现的那句:没有执行闭环的 AI 逆向,只是一个会写漂亮注释的猜测器。

02基线:传统工具链做到了哪一步,卡在哪一步

谈 AI 之前得先说清对照物。Ghidra、IDA、Binary Ninja 这条线今天的水平是:反汇编可靠、交叉引用可靠、控制流恢复基本可靠;反编译产物能读,但通常编不回去。变量名变成 local_18,结构体退化成字节偏移,内联与优化把原始控制结构打散。这不是工具不用心,是编译过程丢掉的信息多于反编译能补回来的信息。

更麻烦的是「不可判定」的部分:哪些字节是代码、哪些是数据,哪些跳转是间接的,这些在理论上就没有唯一答案。传统工具靠启发式猜,猜错时不会报错,只会安静地给你一张错误的图。人之所以能纠正它,是因为人会带着领域知识去交叉验证——比如「这个函数出现在这里不合常理」。

所以这一段的基线可以写成一句:传统工具把「读」这件事做到了工程可用,把「还原」做到了一半,把「推断与验证」几乎全部留给了人。AI 切入的价值空间,正好落在这三个缺口里。

03三条接入范式:大模型是怎么接进来的

2026 年 5 月的一篇系统综述(Large Language Models for Binary Decompilation: Paradigms, Evaluation, and Challenges)把现有做法分成三类:端到端生成、精炼式增强、混合验证。这个分类比「用哪个模型」有用得多,因为它直接对应三种不同的失败模式。

范式做法优势主要失败模式
端到端生成直接把汇编喂给专用模型,一次性输出源码模型专注反编译这一件事,速度与可读性优于通用模型函数一长就崩;跨架构迁移差;无编译验证时错误不易发现
精炼式增强先用 Ghidra 出初稿,模型再改写命名与结构继承工具的控制流准确性,只补语义层受初稿错误限制;模型可能「改写」掉本来正确的逻辑
混合验证模型出代码,编译、跑测试、失败回灌再改有执行证据,错误会被暴露而非掩盖成本最高;测试覆盖不到的分支仍然靠猜

数字上最有说服力的一例是 LLM4Decompile:2024 年的论文给出 1.3B 到 33B 的开源反编译专用模型系列,在 HumanEval 与 ExeBench 两个基准上,可重执行率相对 GPT-4o 与 Ghidra 提升超过 100%;后续的精炼版本(LLM4Decompile-Ref)在此基础上再提升约 16.2%。这些数字值得记住,但必须连同它的边界一起记住:基准以单个函数为单位、语料集中在特定指令集与优化级别,函数规模普遍很小。把一个 40 万行的商业程序直接喂进去,得到的东西与论文里测的不是同一件事。

基准测的是「给定一个函数、输出能不能编回去并跑通测试」,工程要的是「给定一个程序、能不能在预算内定位到行为」。前者是后者的必要条件,远不是充分条件。

这也是为什么「反编译准确率翻倍」的新闻读起来像突破,落到真实项目上却常常只是把第一天的进度从 10% 推到 20%

04智能体化:从「生成一次」到「假设—验证—回灌」

单纯把模型塞进反编译环节,是把它当成一个更会写代码的翻译器。真正的变化发生在 2025 年下半年到 2026 年:模型外面套了一层循环,手里有工具,能自己验错。这层循环的骨架并不复杂,难的是每一环都要有真实的执行反馈。

单程管线:一次输入,一次输出,错了没人知道 二进制 函数 / 区段 反编译 工具或模型 类 C 代码 人工阅读 错误被当成结论采纳 没有可执行的东西反驳它 智能体闭环:每一步都能被外部证据推翻 ① 侦察 字符串 · 导入表 · 交叉引用 ② 提出假设 「这段在做解码」 ③ 造可执行命中 编译 · 单测 · 差分跑 ④ 失败即证据 回灌修正,不改结论 假设被推翻时,退回侦察而不是继续编故事 这层循环真正的门槛不在模型,而在「③」——能不能把一句话的猜想变成一次可运行的实验。
图 1 单程管线与智能体闭环。区别不在模型强弱,而在失败能不能被外部证据接住:前者错了没人知道,后者错了会被测试打回。

工具接入这一层,2026 年已经被协议标准化掉了。MCP(Model Context Protocol)在 2026 年 7 月 28 日发布了新一版规范,把它从「接工具」扩到「带状态的工具返回、可并行调用、服务端侧的多步循环」;行业侧的数字(Fortune 500 采用率、企业内已上生产的 Agent 数量)在不同报告里口径不一,本文只取一个可交叉验证的说法:接入层已经从自研适配器变成公共协议,这件事本身是确定的,具体渗透率不是。

对逆向这件事,协议标准化的意义很具体:反汇编器、沙箱、符号执行引擎、测试生成器都可以各自作为一个工具挂上去,智能体只负责编排。它把「模型要多聪明」这个问题,替换成了「工具链要多完整」——这是个更容易解决的问题,也更接近工程现实。

05可行域:哪些任务可以交给智能体,哪些不行

下面这张表是我们自己在评估「这一段要不要让智能体上」时用的判据。分档的依据不是难度,而是有没有客观信号能判定对错——有信号的任务,智能体能收敛;没有信号的,它只会更快地产生看似合理的内容。

任务可行性前提条件典型风险
小函数语义还原(< 200 行)高有编译环境与单测;指令集在训练语料内命名合理但语义偏移,需抽样复核
协议与文件格式推断中高手里有成对样本;可做差分实验把「常见格式」当成本样本格式
恶意样本功能分类中有沙箱行为日志与家族知识库把规避行为误判成无害
加壳 / 虚拟化保护下的去混淆低需要专用脱壳环境与大量人工模型看到的是壳,不是本体
密钥与授权算法恢复仅限合法授权场景权利人书面授权或司法委托越界即违法,见下一节
整程序「一键还原源码」当前不成立—规模、间接跳转、内联优化三项同时挡

请注意表中最后一行:「整程序一键还原」在 2026 年仍然不成立,不是模型不够大,是三件事没有同时解决——上下文装不下整个程序、间接跳转在静态分析里不可判定、优化后的控制结构无法唯一还原。任何宣称能做到的产品,都值得先要一份可复现的样本。

06不能碰的部分:技术与法律是两条同时收紧的线

把能力边界划完之后,还有一道边界与能力无关:你有权对这份软件做逆向吗。这一步在技术讨论里经常被跳过,而它决定的是「能不能做」,不是「做得多好」。

我们只陈述规则,不展开方法。国内现行规则里有三条经常被引用:

三条常被误读的规则

  • 保护的是表达,不是思想。《计算机软件保护条例》第六条明确:保护具有独创性的程序表达,不延及开发软件所用的思想、处理过程、操作方法或数学概念。这意味着「理解它怎么做」与「复制它的代码」是两件事,前者不等于侵权。
  • 学习研究目的下的使用是允许的。同条例第十七条规定,为了学习和研究软件内含的设计思想和原理,可以通过安装、显示、传输或者存储等方式使用软件。
  • 但「复制发行」是另一回事。《著作权法》第五十条把技术措施规避的例外情形写入法律,其中包含「进行加密研究或者计算机软件反向工程研究」;而司法实践中,通过反向工程获取目标程序后复制并制售同类产品,已被认定为侵犯著作权,数额较大可追究刑事责任(最高检发布的指导性案例即属此类)。

所以判断标准不是「有没有逆向」,而是逆向之后产出了什么、拿去做什么:产出理解与测评报告,落在研究例外的射程内;产出可替代的复制品并对外销售,落在侵权甚至刑事的射程内。这条线在 AI 时代没有变松,反而因为「复制成本骤降」而更容易被跨过——模型抹掉的是劳动量,不抹掉责任。

同样明确的是我们不做的事:不承接对第三方商业软件去除授权校验、提取密钥、生成可运行复刻品的委托,不论技术是否可行。这既是法律边界,也是产品边界——产权保护这条产品线本身就在做「提高复制成本」的事,一边卖锁一边卖开锁工具,逻辑上不成立。

07算一笔账:为什么「能读懂」不等于「值得读」

这类工具真正落地的阻力常常不是准确率,是成本结构。三个成本项里,被低估最多的是第三项。

成本项随什么增长为什么容易失控
上下文成本程序规模、跨文件引用装不下就得切块,切块就丢交叉引用,丢引用就要重新侦察一遍
验证成本分支数量、测试覆盖没有测试的分支等于没有验证;补测试往往比改代码更费人
责任成本结论被使用的场景模型给的是概率性判断,落到取证、审计、判决这类场景,每一条都要人签字背书

这也是我们自己的体会:生成一段「看起来对」的反编译代码,成本已经接近零;把这段代码确认到可以据以做决定,成本没有下降。AI 压缩的是第一段,第二段的单价几乎不变。所以真实收益不来自「自动化率」,而来自「把人的注意力挪到信号最强的地方」——先跑差分发现哪几段行为异常,再让模型只解释那几段。

08五年推演:四条趋势与三个不确定

以下四条是判断,不是结论;每条都给出它成立需要的条件,以及最快被推翻的方式。

  • 从「读得懂」到「编得回去」再到「等价可证」。当前基准已经在测可重执行率,下一步的竞争点是等价性:反编译产物与原始二进制在同一组输入下行为一致,且这一点被形式化工具而非人眼确认。条件是需要编译器与符号执行工具的配合;被推翻的方式是优化级别一升高,等价判定成本指数上升,工程上放弃。
  • 逆向从「读代码」变成「做实验」。智能体把工作重心从静态阅读转向构造输入、观察输出、差分比对。条件是沙箱足够便宜、样本可反复运行;被推翻的方式是目标程序依赖真实硬件或外部服务,实验环境搭不出来。
  • 防护侧的重心从「让人看不懂」转向「让复制不可用、让泄露可追溯」。这一条与前面几篇是同一个判断:代码与算法层面的门槛在下降,设备绑定、在线校验、水印与取证这些「不依赖保密」的手段权重上升。条件是被保护方接受「不能承诺不可逆」;被推翻的方式是客户仍然只想买一句「绝对破解不了」的承诺。
  • 逆向能力被制度化,主要需求方变成审计与取证。司法鉴定、软件供应链审计、漏洞披露、开源合规检查,这些场景有明确授权链与文档要求,比「研究一下别人的软件」更容易规模化。条件是责任划分与证据标准跟上;被推翻的方式是 AI 生成结论的可采信度长期低于人工,制度拒绝接纳。
  • 防护投入(设备绑定、在线校验、混淆、取证)→ 对手所需成本 人工逆向时代 智能体辅助之后 整段下移 这段区间里,防护仍然有意义 成本高于收益,转卖与共享不划算 但不是「解不开」,只是「不值得」 曲线是示意,不是实测:纵轴代表「对手完成一次可用复制所需的总成本」,不是单次破解耗时。
    图 2 AI 没有改变曲线的形状,改变的是它的位置。防护侧真正要回答的问题从「能不能被解开」变成「解开之后值不值」。

    三个不确定(会影响上面每一条)

    • 训练语料与许可。反编译模型吃的是编译产物与源码对,这批数据从哪来、许可是否干净,目前没有统一答案。一旦收紧,模型迭代速度会明显下降。
    • 评测基准。现在的基准以单函数为主,没有公认的「整程序级」评测。缺基准意味着进步无法被稳定度量,也意味着宣传口径会持续混乱。
    • 责任归属。模型生成的反编译代码被用于取证或审计时,责任在工具方、使用者还是委托人,还没有判例。这一条比技术更慢,但它决定这门能力能不能被制度化使用。

    09对我们自己这套加密方案的推论

    把上面的判断落到我们自己的产品线上,结论是一句不太好听的话:不能把防护押在「对方看不懂我们的二进制」上。这一条在研究层面已经站不住——专用模型在单函数可重执行率上已经超过传统工具,且每年还在推进。

    所以产权保护这条线的设计重心必须放在三处,且都和提高「读懂」难度无关:密钥由本机机器码派生(换机即失效,逆向者读懂了逻辑也拿不到目标机器的密钥)、播放依赖在线校验(到期、次数、设备数这些规则在服务端)、泄露可追溯(授权记录与发码留痕,出现外流时能定位到账号)。这三条在上一篇文章里已经逐条论证过边界,这里只补一句:它们的作用是抬高成本、缩小可复制范围,不是承诺内容无法被复制。

    10结论

    回到开头那个被问错的问题。把五层能力摊开后,答案是有条件的:

    读与推断的初稿,智能体已经可用,且在专用模型上超过传统工具;还原在中高,取决于函数规模与是否有编译验证;验证与决策仍然要人,且比过去更需要人。「整程序一键还原」「加壳程序自动去混淆」在 2026 年都不成立。同时,法律边界与十年前一致:理解可以,复制发行不行。

    未来五年最值得下注的不是「模型更大」,而是把闭环里的执行环节做厚——谁能让「一句话的猜想」在一分钟内变成一次可运行的实验,谁就能把这门手艺从玄学拉成工程。防护侧则相反:把押注从保密挪到绑定与追溯,承认「解不开」不再是可交付的承诺。

    想看这套「不押在保密上」的防护怎么落地

    产权保护按档位授权,密钥在客户机器上现算、服务端不持有;边界与不支持的情形写在产品页上,包括我们明确承认会失效的几种情形。

    查看产权保护方案

    本文依据

    反编译范式分类与评测现状引自 2026 年 5 月的系统综述《Large Language Models for Binary Decompilation: Paradigms, Evaluation, and Challenges》;LLM4Decompile 的模型规模(1.3B–33B)、HumanEval / ExeBench 上可重执行率相对 GPT-4o 与 Ghidra 提升超过 100%、精炼版本再提升 16.2%,均取自该系列论文(EMNLP 2024)与后续公开版本。

    MCP 规范版本(2026-07-28)与能力扩展(服务端侧多步循环、并行工具调用)取自 MCP 官方博客。行业渗透率数字在不同报告中口径不一致,本文未采用具体百分比,只保留「接入层已协议标准化」这一可交叉验证的判断。

    法律部分依据《计算机软件保护条例》第六条、第十七条,以及《著作权法》第五十条关于技术措施规避例外(含「加密研究或计算机软件反向工程研究」)的规定;刑事认定的表述参照最高人民检察院发布的指导性案例,仅作规则说明,不涉及任何操作方法。文中关于未来五年的四条趋势属判断,已逐条标注成立条件与被推翻的方式。

    讨论

    加载中…

    匿名即可发言,昵称留空会显示为“匿名访客”。评论按楼层顺序排列,每条都可以回复;站长会把有结论的回复标为「已采纳」。不支持链接与推广内容。在微信里打开本文可选用微信身份,显示你的头像与昵称。

    0 / 400 字 · 每 IP 每小时 4 条

    正在读取评论…