中文

基于大语言模型的语义增强间接调用分析

软件工程 2024-11-01 v3

摘要

在当代软件开发中,广泛使用间接调用以实现动态特性,给构建精确控制流图 (CFG) 带来挑战,进而影响下游静态分析任务的性能。为解决此问题,已提出 various 类型的间接调用分析器。然而,它们未充分利用程序的语义信息,限制了其在实际场景中的有效性。为此,本文提出语义增强分析 (SEA),以增强间接调用分析的有效性。我们的基本洞察是,对于常见的编程实践,间接调用往往在语义上与其被调用目标具有相似性。这种语义一致性为静态分析技术过滤误目标提供了支持机制。值得注意的是,当代大型语言模型 (LLM) 已在广泛的代码语料库上进行训练,涵盖代码摘要等任务,使其适用于语义分析。具体而言,SEA 利用 LLM 从多个角度生成间接调用和目标函数的自然语言摘要。通过进一步分析这些摘要,可以确定其作为调用者-被调用者对的合适性。实验结果表明,SEA 能显著提升现有静态分析方法,产生更精确的间接调用目标集。

关键词

引用

@article{arxiv.2408.04344,
  title  = {Semantic-Enhanced Indirect Call Analysis with Large Language Models},
  author = {Baijun Cheng and Cen Zhang and Kailong Wang and Ling Shi and Yang Liu and Haoyu Wang and Yao Guo and Ding Li and Xiangqun Chen},
  journal= {arXiv preprint arXiv:2408.04344},
  year   = {2024}
}

备注

Accepted by ASE'24