Semantic-Enhanced Indirect Call Analysis with Large Language Models

2024年08月08日
  • 简介
    在当代软件开发中,广泛使用间接调用来实现动态特性,这给构建精确的控制流图(CFG)带来了挑战,进而影响了下游静态分析任务的性能。为了解决这个问题,提出了各种类型的间接调用分析器。然而,它们没有充分利用程序的语义信息,在实际场景中的效果受到限制。为了解决这些问题,本文提出了一种名为“语义增强分析(SEA)”的新方法,以增强间接调用分析的效果。我们的基本见解是,对于常见的编程实践,间接调用通常与其调用目标具有语义相似性。这种语义对齐作为静态分析技术在过滤错误目标方面的支持机制。值得注意的是,当代的大型语言模型(LLMs)是在广泛的代码语料库上进行训练的,涵盖了代码摘要等任务,使它们非常适合进行语义分析。具体而言,SEA利用LLMs从多个角度生成间接调用和目标函数的自然语言摘要。通过进一步分析这些摘要,SEA可以确定它们作为调用方-被调用方对的适用性。实验结果表明,SEA可以通过为间接调用生成更精确的目标集,显著增强现有的静态分析方法。
  • 作者讲解
  • 图表
  • 解决问题
    本论文旨在解决动态特性中间调用对于构建精确控制流图的挑战,进而影响下游静态分析任务的性能问题。现有的间接调用分析器未能充分利用程序的语义信息,限制了它们在实际场景中的有效性。
  • 关键思路
    该论文提出了一种新的方法——语义增强分析(SEA),旨在提高间接调用分析的有效性。SEA利用大型语言模型(LLMs)生成间接调用和目标函数的自然语言摘要,并通过对这些摘要的进一步分析来确定它们作为调用方-被调用方对的适用性。实验结果表明,SEA可以通过为间接调用生成更精确的目标集合来显著增强现有的静态分析方法。
  • 其它亮点
    该论文的亮点在于提出了一种新的方法——SEA,通过利用大型语言模型(LLMs)生成自然语言摘要来提高间接调用分析的有效性。实验结果表明,SEA可以显著提高现有静态分析方法的精度。此外,该论文还介绍了一些相关工作和开源数据集。
  • 相关研究
    在该领域的相关研究中,还有一些相关的研究,如《DeepTune: Neural Solvers for Compiler Optimizations》、《Neural Code Comprehension: A Systematic Literature Review》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问