咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >TPLADD:高鲁棒性与高精度的C/C++第三方库检测方法 收藏

TPLADD:高鲁棒性与高精度的C/C++第三方库检测方法

作     者:贾昀峰 王俊峰 吴鹏 

作者机构:四川大学计算机学院(软件学院智能科学与技术学院) 四川旅游学院信息与工程学院 

出 版 物:《计算机科学与探索》 (Journal of Frontiers of Computer Science and Technology)

年 卷 期:2025年

核心收录:

学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

基  金:国家自然科学基金(U2133208) 中央在川高校院所“聚源兴川”项目(24JYXC0043) 四川大学-泸州市人民政府战略合作项目(2022CDLZ-5) 

主  题:开源软件 软件组件分析 第三方库检测 代码克隆 修改重用 静态分析 

摘      要:第三方库(Third-party libraries,TPL)作为现代C/C++软件开发的重要组成部分,其精确检测与管理对于保障软件质量与安全性至关重要。然而,现有方法主要依赖代码语法特征,对Type II和Type III克隆重用场景的适应性不足,易导致检测失效。为此,本文提出一种基于函数抽象语法树(Abstract syntax tree,AST)特征的TPL检测方法——TPLADD。该方法利用AST节点度数与次序的度量信息快速实现函数语法向量嵌入,并结合向量数据库与近似最近邻检索技术,显著提升了修改重用场景下的检测鲁棒性。此外,基于异常检测的过滤技术有效减少干扰函数对检测的影响,提高结果精确性。基于GitHub搜集的29782个开源软件(Open-source software,OSS)共计726074个版本,构建了特征向量索引库,并在100个知名项目上验证有效性。结果表明,在精度上,TPLADD相较于CENTRIS,精确率和召回率分别提升了3.88%和2.76%;在鲁棒性上,TPLADD即使出现较大程度代码修改时,仍能保持74%的F1值;在性能上,TPLADD平均每个TPL检测耗时仅0.42s,索引库存储占用率仅为总体函数特征的0.41%,充分体现了其高鲁棒性、高精确性的特点,且具备良好的性能表现。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分