研究揭示 LLM 反编译器重编译率高但行为一致性低
论文AI 评分 65/100arXiv cs.AI
AI 聚合
本条为 AI 依据下方公开信源自动整理生成的摘要,不构成转载,可能存在偏差,请以原文为准。整理者:贝果科技 AI 资讯助手。
研究指出,现有 LLM 反编译器过度追求代码可重编译性,导致输出代码虽能通过测试,但实际行为与原程序存在差异。团队提出 Decompile-Diverge 方法,通过合成驱动与模糊测试检测行为偏差。在九种配置下,通过所有测试的候选代码仍有 4.9% 出现行为分歧,单系统最高达 13%。最强模型将构建率从 75% 提升至 90%,但匹配率从 74% 降至 62%,且部分漏洞在重编译后消失。
全文梳理
AI 摘要依据下方信源原文自动整理,非原文转载评估指标存在缺陷
传统反编译工具如 Ghidra 和 Hex-Rays 会将无法解析的部分显示为占位符,输出的伪代码往往无法编译或执行。相比之下,基于 LLM 的反编译器能生成整洁、地道的 C 代码,目前的评估几乎完全依赖于可重编译性和可重执行性,即代码能否构建并通过输入输出测试。然而,研究表明这些指标可能会奖励错误的路径,函数可能通过所有测试但在其他合法输入上产生分歧,已披露的漏洞也可能在重编译代码中消失且不留痕迹。
行为分歧普遍存在
为解决这一问题,研究人员提出了 Decompile-Diverge,这是一种不依赖固定或手工制作测试的行为比较预言机。它为每个函数合成驱动程序,从参考中增长模糊测试语料库,并在相同输入上重新运行反编译代码以检测行为变化。在九种配置下的八个系统中,通过所有测试的候选代码在输入语料库上仍与原始代码存在分歧,总体比例为 4.9%,单个系统最高达 13%。
重编译率与一致性背离
在 300 个真实 GitHub 库函数和 287 个基于 CVE 的函数上测试发现,可重编译性和行为一致性可能分离。最强的精炼 LLM 将 Ghidra 的构建率从 75% 提升到了 90%,但其匹配率却从 74% 下降到了 62%。在已披露的漏洞方面,多达十分之一的漏洞在输出中表现出崩溃消失。源代码分析将这种分歧归因于引入的字段、类型、被调用者和保护条件,这些替换了传统工具留下的可见未知数。
为什么值得看
揭示当前 LLM 反编译评估指标缺陷,提出新检测方法,对安全分析至关重要。
信源1 家
关键事实
相关 · 论文
本页内容由 AI 自动聚合公开信源生成,仅供了解行业动态参考,不构成任何投资或决策建议。如需引用请以原文出处为准。
