中文

Callee:利用迁移与对比学习恢复二进制代码的调用图

软件工程 2022-12-26 v4 人工智能 密码学与安全

摘要

恢复二进制程序的调用图对过程间分析任务及基于它们的应用至关重要。核心挑战之一是识别间接调用的目标(即间接被调用者)。现有方案均存在较高的假阳性与假阴性,导致调用图不准确。本文提出一种结合迁移学习与对比学习的新方案 Callee。其核心洞见是:深度神经网络(DNNs)可自动识别与间接调用相关的模式,这比设计近似算法或启发式规则来处理各种情况更高效。受问答应用进展的启发,我们利用对比学习来回答调用点-被调用者问题。然而,最严峻的挑战之一是 DNNs 需要大规模数据集才能达到高性能,而收集大规模间接调用真值计算开销巨大。由于直接调用与间接调用共享相似的调用约定,可将从直接调用中学到的知识迁移至间接调用。因此,我们利用迁移学习以易收集的直接调用预训练 DNNs,并进一步微调间接调用 DNNs。我们在多组目标上评估 Callee,结果表明本方案可将调用点匹配至被调用者的 F1 值达 94.6%,远优于当前最优方案。此外,我们将 Callee 应用于二进制代码相似度检测与混合模糊测试,发现其可大幅提升它们的性能。

关键词

引用

@article{arxiv.2111.01415,
  title  = {Callee: Recovering Call Graphs for Binaries with Transfer and Contrastive Learning},
  author = {Wenyu Zhu and Zhiyao Feng and Zihan Zhang and Jianjun Chen and Zhijian Ou and Min Yang and Chao Zhang},
  journal= {arXiv preprint arXiv:2111.01415},
  year   = {2022}
}