中文

基于跨引用增强图神经网络的二进制代码中间接调用解析

密码学与安全 2025-11-11 v2

摘要

二进制代码分析在源代码不可用的情况下至关重要,广泛应用于多个安全领域。然而,准确解析间接调用目标始终是维持静态二进制代码分析完整性面临的长期挑战。这一困难源于调用指令的操作数(例如 call rax)在运行时才为知晓,导致过程间控制流图(CFG)不完整。以往方法在准确率和可扩展性方面常常表现不佳。为此,近期研究越来越多地转向机器学习以提升分析效果。然而,这种机器学习方法面临两个重大障碍:调用方-被调用方训练对质量不高,以及二进制代码表示不足,这两者都削弱了机器学习模型的准确率。本文引入CupidCall,一种用于解析间接调用的图神经网络方法。现有此领域的机器学习模型常常忽视数据和代码跨引用等关键要素,这些要素对于理解程序的控制流至关重要。与此不同,CupidCall将跨引用augmented到CFG中,保留了丰富的语义信息。此外,我们利用先进的编译器级类型分析生成高质量的调用方-被调用方训练对,提高了模型的精度和可靠性。我们进一步设计一种图神经模型,利用augmented CFG和关系图卷积进行精准目标预测。在本研究中,我们针对x86_64架构上的GitHub和Arch User Repository等真实世界的二进制文件进行评估,CupidCall实现了95.2%的F1分数,超越了领域内最先进的机器学习方法。这些结果凸显了CupidCall在构建精确过程间CFG方面的有效性及其在下游二进制分析和安全应用中的潜在价值。

关键词

引用

@article{arxiv.2507.18801,
  title  = {Resolving Indirect Calls in Binary Code via Cross-Reference Augmented Graph Neural Networks},
  author = {Haotian Zhang and Kun Liu and Cristian Garces and Chenke Luo and Yu Lei and Jiang Ming},
  journal= {arXiv preprint arXiv:2507.18801},
  year   = {2025}
}