基于多级胎记模型的可解释软件复用检测
软件工程
2021-03-19 v1
摘要
软件复用,尤其是部分复用,对软件开发构成法律与安全威胁。由于其源代码通常不可用,软件复用难以通过解释进行检测。另一方面,现有方法检测精度与效率低下,远不能满足实际需求。为解决这些问题,本文提出 \textit{ISRD},一种基于包含函数级、基本块级和指令级的多级胎记模型的可解释软件复用检测方法。为克服交叉编译引起的混淆,我们用最小分支路径(MBP)表示函数语义并执行归一化以提取指令核心语义。为高效检测复用函数,设计了“基于锚点识别的意图搜索”流程以加速复用检测。它使用严格的指令匹配和相同的库调用调用检查来寻找锚点函数(简称锚点),然后遍历锚点邻居以探索潜在匹配的函数对。基于两个真实世界二进制数据集的大量实验表明,\textit{ISRD} 具有可解释性、有效性和高效性,取得了 准确率和 召回率。此外,它对交叉编译具有韧性,优于最先进的方法。
引用
@article{arxiv.2103.10126,
title = {Interpretation-enabled Software Reuse Detection Based on a Multi-Level Birthmark Model},
author = {Xi Xu and Qinghua Zheng and Zheng Yan and Ming Fan and Ang Jia and Ting Liu},
journal= {arXiv preprint arXiv:2103.10126},
year = {2021}
}