← 最新论文
💻 computer science

Defusing Logic Bombs in Symbolic Execution with LLM-Generated Ghost Code

本文提出了 Gordian 框架,通过利用大语言模型选择性生成辅助幽灵代码来增强 SMT 求解器处理符号执行中“逻辑炸弹”等难题的能力,从而在显著提升代码覆盖率的同时大幅降低了 LLM 的 Token 消耗。

原作者: Dimitrios Stamatios Bouras, Sergey Mechtaev

发布于 2026-03-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Dimitrios Stamatios Bouras, Sergey Mechtaev

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文介绍了一个名为 Gordian(戈耳狄俄斯)的新工具,它巧妙地结合了两种强大的技术:符号执行(一种像“上帝视角”一样分析代码的方法)和 大语言模型(LLM,也就是现在的 AI)。

为了让你轻松理解,我们可以把这段技术故事想象成**“一位经验丰富的侦探(符号执行)遇到了一位才华横溢但偶尔会犯迷糊的顾问(AI)”**。

1. 侦探的困境:遇到“逻辑炸弹”

想象一下,侦探(符号执行引擎)正在调查一个复杂的案件(程序代码)。他的工作方式是:

  • 推演所有可能性:他拿着一个放大镜,试图推演输入不同数据时,程序会走哪条路。
  • 依靠逻辑计算器:他有一个超级严谨的逻辑计算器(SMT 求解器),用来验证每一步是否符合数学规则。

问题出在哪?
有些代码片段太复杂了,比如涉及极其高深的三角函数、复杂的数学公式,或者像迷宫一样的动态数据结构(比如链表、树)。

  • 对于逻辑计算器来说,这些就像“天书”,它算不出来,或者算得慢到死机。
  • 一旦遇到这些“逻辑炸弹”,侦探就卡住了,无法继续深入调查,导致很多隐藏的漏洞(Bug)被漏掉。

2. 纯 AI 方案的失败:聪明的顾问,糊涂的导航

最近,有人想:“既然计算器算不出来,不如直接请 AI 顾问来算吧!”

  • 纯 AI 方案:让 AI 直接分析代码,猜测输入什么数据能触发某个分支。
  • 结果:AI 很聪明,能看懂局部逻辑。但是,如果案件链条很长(比如需要连续通过 10 个检查点),AI 就会“记不住”前面的条件,或者在长链条中前后矛盾。它就像是一个只懂局部、缺乏全局观的向导,容易走错路。

3. Gordian 的绝招:给侦探配个“幽灵助手”

Gordian 没有选择二选一,而是想出了一个**“混合双打”的策略。它不替换侦探,而是给侦探配了一个“幽灵助手”**(Ghost Code)。

这个助手是由 AI 生成的,但它只干三件特定的事,而且干完就消失,不干扰侦探的全局推理:

绝招一:逆向工程(把“死胡同”变成“双向道”)

  • 场景:侦探遇到一个复杂的数学公式,正向推演(从输入到输出)太难解。
  • AI 的作用:AI 帮侦探写了一段“反向代码”。
  • 比喻:就像侦探在迷宫里迷路了,AI 帮他画了一张**“倒着走”的地图。侦探先看看终点想要什么结果,然后让 AI 写的代码倒着推**回来,告诉侦探:“如果你想要这个结果,输入大概应该是这个数。”
  • 效果:侦探利用这个线索,结合自己严谨的逻辑,成功找到了正确的入口。

绝招二:找替身(用“简单模型”代替“复杂怪兽”)

  • 场景:代码里有一个极其复杂的加密或数学函数,像一头难以驯服的怪兽。
  • AI 的作用:AI 写了一个**“替身”**(Surrogate)。这个替身长得像怪兽,行为也差不多,但内部逻辑非常简单,逻辑计算器能轻松算出来。
  • 比喻:侦探要过一座摇摇欲坠的独木桥(复杂函数),AI 在旁边搭了一座坚固的简易桥(替身模型)。侦探先过简易桥探路,确认方向对了,再回头去验证真桥。
  • 效果:既保留了关键信息,又让计算器能轻松工作。

绝招三:给迷宫画“分区图”(防止在无限空间里迷路)

  • 场景:程序处理的是动态数据结构(比如链表),像是一个无限延伸的迷宫,侦探不知道从哪里开始探索,容易陷入“路径爆炸”(路太多走不过来)。
  • AI 的作用:AI 根据经验,帮侦探把无限的空间划分成几个有意义的“形状”(比如:环形的、直线的、断开的)。
  • 比喻:侦探面对一片茫茫大海(无限内存),AI 递给他一张**“寻宝图”**,告诉他:“别乱游了,我们只重点检查这三个特定的岛屿形状。”
  • 效果:侦探不再盲目探索,而是精准地检查最有价值的区域。

4. 为什么这个方案这么牛?

  • 既严谨又灵活:侦探(符号执行)负责全局逻辑,确保每一步都严丝合缝;AI 助手只负责局部难点,提供灵感。
  • 省钱又高效
    • 纯 AI 方案需要 AI 一直思考,消耗巨大的“算力”(Token 费用)。
    • Gordian 只在最关键的时刻叫 AI 帮忙写几行代码,然后让侦探自己跑。
    • 结果:论文数据显示,Gordian 找到的漏洞比传统方法多 52%~84%,比纯 AI 方法多 86%~419%,而且AI 的调用成本降低了 90% 以上

总结

Gordian 就像是在一位严谨的数学家(符号执行)旁边,请了一位博学的老工匠(AI)。

  • 遇到难题时,老工匠不直接替数学家算题(那样容易出错且慢),而是给数学家提供一个巧妙的解题思路或辅助工具(幽灵代码)。
  • 数学家拿到工具后,结合自己严密的逻辑,瞬间就能解开以前解不开的“逻辑炸弹”。

这种方法既保留了数学的严谨性,又利用了 AI 的创造力,是目前解决复杂代码分析问题的一个非常聪明的“混合双打”方案。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →