一种函数库引用版本检测方法、设备及存储介质技术

技术编号:38156952 阅读:13 留言:0更新日期:2023-07-13 09:26
本申请提供了一种函数库引用版本检测方法、设备及存储介质。所述方法包括:获取待检测项目中第一头文件信息;将第一头文件信息与预设的数据库中第二头文件信息进行匹配;数据库包括二进制文件引用形式以及源码引用形式的第二头文件信息;根据匹配结果确定待检测项目从数据库中所引用的目标函数库对应的函数库版本。通过本申请方案的实施,将待检测项目中的头文件信息与预设数据库中的头文件信息进行匹配,即可确定目标函数库对应的函数库版本,并且数据库中包含二进制文件引用形式以及源码引用形式的头文件信息,从而可以兼顾检测两种引用函数库形式的函数库,且所需准备的数据量少,可有效节省存储空间。可有效节省存储空间。可有效节省存储空间。

【技术实现步骤摘要】
一种函数库引用版本检测方法、设备及存储介质


[0001]本申请涉及电子
,尤其涉及一种函数库引用版本检测方法、设备及存储介质。

技术介绍

[0002]对于在C语言、C++语言源码项目中检测引用函数库的方法,目前行业内多采用源码相似度检测和包管理器识别的方案,再通过检测得到所引用的函数库确定函数库的版本。
[0003]源码相似度检测是大量采集开源项目的源码,提取出项目中所有函数的内容,并将每个函数进行如删除空格、变量名称规格化等处理,将处理后的函数内容计算得到哈希值并存储入库,同时入库的还有该哈希值对应的函数库名称和版本。需要检测某个项目引用了哪些组件时,将该项目经同样的处理,得到每个函数的哈希值,将这些哈希值拿到库中进行检索,通过匹配的哈希值数量、比例等,取得引用的函数库名称和版本。
[0004]包管理器识别组件的方案,是识别包管理文件如vcpkg中的内容,此类文件中的内容为文本形式,描述了需要下载或引用的库,有些包含版本信息。
[0005]但采用源码相似度检测的方案只能检测包含函数库源码的情况,比如某个C、C++本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种函数库引用版本检测方法,其特征在于,包括:获取待检测项目中第一头文件信息;其中,所述第一头文件信息包括:第一头文件对应的第一头文件名、第一哈希值、第二哈希值以及第一修改时间;将所述第一头文件信息与预设的数据库中第二头文件信息进行匹配;其中,所述数据库包括二进制文件引用形式以及源码引用形式的所述第二头文件信息;根据匹配结果确定所述待检测项目从所述数据库中所引用的目标函数库对应的函数库版本。2.根据权利要求1所述的函数库引用版本检测方法,其特征在于,所述获取待检测项目中第一头文件信息的步骤之前,还包括:获取所述第一头文件中第一目标函数的第一声明信息;根据预设提取工具,获取所述第一声明信息中第一目标函数名以及第一参数信息;根据所述第一目标函数名的声明顺序,将所有删除无效信息后的所述第一目标函数名以及所述第一参数信息进行拼接,得到第一字符串;对所述第一字符串进行哈希运算,得到所述第二哈希值。3.根据权利要求1所述的函数库引用版本检测方法,其特征在于,所述将所述第一头文件信息与预设的数据库中第二头文件信息进行匹配的步骤之前,还包括:获取所有预设版本的函数库对应的第二头文件;分别获取所述第二头文件对应的第二头文件名、第三哈希值、第四哈希值以及第二修改时间;基于所述函数库对应的函数库名称、所述函数库对应的版本、所述第二头文件名、所述第三哈希值、所述第四哈希值以及所述第二修改时间生成所述数据库。4.根据权利要求3所述的函数库引用版本检测方法,其特征在于,所述分别获取所述第二头文件对应的第二头文件名、第三哈希值、第四哈希值以及第二修改时间的步骤之前,还包括:获取所述第二头文件中第二目标函数的第二声明信息;根据预设提取工具,获取所述第二声明信息中第二目标函数名以及第二参数信息;根据所述第二目标函数名的声明顺序,将所有删除无效信息后的所述第二目标函数名以及所述第二参数信息进行拼接,得到第二字符串;对所述第二字符串进行哈希运算,得到所述第四哈希值。5.根据权利要求3所述的函数库引用版本检测方法,其特征在于,所述将所述第一头文件信息与预设的数据库中第二头文件信息进行匹配的步骤,包括:将所述第一头文件信息中第一头文件名与所有所述第二头文件信息中第二头文件名进行匹配,得到第一匹配结果;其中,所述第一匹配结果包括:所述数据库中对应于所述第一头文件名的所有一级第二头文件信息;将所述第一修改时间与所有所述一级第二头文件信息中第二修改时间进行匹配,得到第二匹配结果;其中,所述第二匹配结果包括:所述第二修改时间匹配于所述第一修改时间的所有二级第二头文件信息,以及所述第二修改时间不匹配于所述第一修改时间的剩余一级第二头文件信息;所述根据匹配结果确定所述待检测项目从所述数据库中所引用的目标函数库对应的
函数库版本的步骤,包括:根据所述第二匹配结果确定所述待检测项目从所述数据库中所引用的目标函数库对应的函数库版本。6.根据权利要求5所...

【专利技术属性】
技术研发人员:朱劲松万振华王颉
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1