BinCoFer:用于有效 C/C++ 二进制第三方库检测的三阶段提纯方法
软件工程
2025-04-29 v1
摘要
第三方库(TPL)正日益广泛地用于实现高效简洁的软件开发。然而,不规范地使用 TPL 会在软件开发中引入法律和安全问题。因此,一些研究尝试通过构建特征库来检测目标程序中 TPL 的复用情况。大多数工作需要访问 TPL 的源代码,而其他工作则存在特征库冗余、检测效率低下以及难以检测部分引用的第三方库等问题。为此,我们引入了 BinCoFer,一种用于检测二进制程序中复用 TPL 的工具。我们利用二进制代码相似度检测(BCSD)的工作来提取二进制格式的 TPL 特征,使其适用于无法访问 TPL 源代码的场景。BinCoFer 采用一种新颖的三阶段提纯策略,通过突出核心函数并提取函数级特征来缓解特征库冗余问题,使其适用于 TPL 部分复用的场景。我们观察到,直接使用相似度阈值来判断两个二进制函数之间的复用关系并不准确,而先前的工作尚未解决这一问题。因此,我们设计了一种利用权重聚合目标二进制中函数与核心函数之间相似度的方法,从而以高置信度最终判定复用情况。为了检验 BinCoFer 的能力,我们在 ArchLinux 上编译了一个数据集,并将其与其他四项最相关的工作(即 ModX、B2SFinder、LibAM 和 BinaryAI)进行了对比实验……
引用
@article{arxiv.2504.19551,
title = {BinCoFer: Three-Stage Purification for Effective C/C++ Binary Third-Party Library Detection},
author = {Yayi Zou and Yixiang Zhang and Guanghao Zhao and Yueming Wu and Shuhao Shen and Cai Fu},
journal= {arXiv preprint arXiv:2504.19551},
year = {2025}
}
备注
Accept by Journel of Systems & Software