摘要
arXiv:2504.10557v1 宣告类型: cross
摘要: 理解代码是自动化软件开发任务的核心能力。虽然像大语言模型(LLMs)这样的基础模型在许多软件工程挑战中表现出色,但它们超出简单标记识别的真正语义理解程度仍然不清楚。这项研究使用代码混淆作为结构化测试框架,评估LLMs的语义理解能力。我们系统地对源代码应用受控的混淆变化,并通过两项互补任务进行评估:生成混淆代码的准确描述和执行解混淆,后者对于逆向工程应用具有重要意义。
我们的测试方法包括13个先进的模型,涵盖了专为代码优化(例如,StarCoder2)和通用(例如,GPT-4o)的架构,并且评估了一个基于CodeNet创建的基准,该基准包含250个过滤后的Java编程问题及其解决方案。研究结果表明,随着混淆复杂性的增加,性能出现了统计显著的下降,而通用模型相较于专为代码优化的模型表现出出乎意料的抗干扰能力。虽然一些模型能够识别混淆技术,但它们重构底层程序逻辑的能力仍然受限,这表明它们的语义表示机制存在局限性。这项研究引入了评估语言模型代码理解能力的新方法,并为推进安全关键代码分析应用如逆向工程和对抗性代码分析的研究建立了实证基准。