论文
大型语言模型的事后注意力引导,用于混淆下的鲁棒代码理解
Post-Hoc Attention Steering of Large Language Models for Robust Code Understanding under Obfuscation
摘要
代码混淆广泛用于软件系统和恶意软件中,以隐藏程序逻辑并阻碍分析,给人类开发人员和自动化工具带来重大挑战。虽然大型语言模型(LLM)在代码理解方面表现出了强大的能力,但它们对混淆的鲁棒性仍然知之甚少。我们的初步研究表明,大语言模型在混淆代码时的表现会显着下降,这表明大语言模型依赖于肤浅的词汇线索,而不是深层的语义推理。为了解决这个限制,我们提出了 CodeSteer,这是一种新颖的注意力引导方法,它将模型注意力重新分配给语义相关的程序元素,包括用于输出预测的后向切片和用于执行推理的控制流路径。我们的方法将轻量级程序分析与推理时注意力引导相结合,以指导大语言模型了解程序的核心输入到输出依赖关系。跨多个模型和数据集的实验表明,CodeSteer 显着提高了混淆代码的性能,通常可以恢复与未混淆程序水平相当的准确性。我们还通过缓冲区溢出检测的案例研究展示了 CodeSteer 的实用性,强调了其在恶意软件/漏洞分析和模糊代码逆向工程方面的潜力。