买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】软件依赖范围自动推断方法、装置、计算机设备和存储器_中国人民解放军国防科技大学_202211694947.8 

申请/专利权人:中国人民解放军国防科技大学

申请日:2022-12-28

公开(公告)日:2024-04-16

公开(公告)号:CN115934157B

主分类号:G06F8/71

分类号:G06F8/71

优先权:

专利状态码:有效-授权

法律状态:2024.04.16#授权;2023.04.25#实质审查的生效;2023.04.07#公开

摘要:本申请涉及软件依赖缺陷检测技术领域的一种软件依赖范围自动推断方法、装置、计算机设备和存储器。该方法包括:获取第三方库的若干个后向不兼容改变,对待检测软件的源码或二进制文件进行分析,根据分析结果对后向不兼容改变集合进行预处理;根据待检测软件的源码或二进制文件,对预处理后的后向不兼容改变集合进行检测,得到后向不兼容库版本,并报告依赖缺陷;根据后向不兼容改变对第三方库的所有库版本进行全局检测,得到所有不兼容库版本;根据所有的不兼容库版本,自动推断出待检测软件的正确依赖范围。采用本方法检测不兼容库版本更加准确高效,误报率更低,从而推断依赖范围更精确,可以帮助终端用户避免兼容性错误的发生。

主权项:1.一种软件依赖范围自动推断方法,其特征在于,所述方法包括:获取第三方库的若干个后向不兼容改变,得到后向不兼容改变集合;对待检测软件的源码或二进制文件进行分析,根据分析结果对后向不兼容改变集合进行预处理;所述预处理用于排除后向不兼容改变集合中与待检测软件的源码或二进制文件没有关系的后向不兼容改变;根据待检测软件的源码或二进制文件,对预处理后的后向不兼容改变集合进行检测,确定后向不兼容改变中变化的元素在待检测软件中的使用情况以及后向不兼容库版本,并报告依赖缺陷;根据后向不兼容改变对第三方库的所有库版本进行全局检测,得到与待检测软件不兼容的所有不兼容库版本;根据所有的不兼容库版本,自动推断出待检测软件的正确依赖范围;其中,根据待检测软件的源码或二进制文件,对预处理后的后向不兼容改变集合进行检测,确定后向不兼容改变中变化的元素在待检测软件中的使用情况以及后向不兼容库版本,并报告依赖缺陷,包括:对CC++库中的每类二进制后向不兼容改变和源码后向不兼容改变制定相应的检测规则;二进制后向不兼容改变包括:用于数据类型改变、符号改变以及常量改变;其中,二进制后向不兼容改变中的数据类型改变的结构体和类的检测规则包括:对结构体和类的添加删除字段的不兼容改变的类型使用字段检测规则,对大小变化的不兼容改变类型使用字段检测规则,对字段顺序变化的不兼容改变类型使用字段比较顺序的检测规则,对字段类型变化的不兼容改变类型使用字段和匹配字段类型的检测规则;二进制后向不兼容改变中的数据类型改变的类不兼容改变类型的检测规则包括:对添加删除虚函数的不兼容性改变类型使用虚函数检测规则,对虚函数位置变化的不兼容性改变类型使用比较虚函数位置的检测规则,对虚函数重写的不兼容性改变类型使用虚函数的检测规则,对添加删除基类的不兼容性改变类型使用基类的检测规则;二进制后向不兼容改变中的数据类型改变的联合体不兼容改变类型的检测规则包括:对添加删除字段的不兼容性改变类型使用字段的检测规则,对大小变化的不兼容改变类型使用字段检测规则,字段类型的变化的不兼容改变类型使用字段和匹配字段类型的检测规则;二进制后向不兼容改变中的数据类型改变的枚举不兼容改变类型的检测规则包括:对成员值变化和删除重命名成员的不兼容改变类型均使用成员检测规则;二进制后向不兼容改变中符号改变的不兼容改变检测规则包括:对删除符号、符号改变的不正确的版本变化以及属性变化的不兼容改变类型使用符号检测规则,对默添加删除参数、认参数值变化以及重命名参数的不兼容改变类型使用参数检测规则,对参数返回值类型变化的不兼容改变类型使用匹配参数返回值类型检测规则;二进制后向不兼容改变中常量改变的不兼容改变检测规则包括:对值变化的不兼容改变使用常量值检测规则;源码后向不兼容改变包括:数据类型改变和符号改变;其中,源码后向不兼容改变中的数据类型改变的检测规则包括:对于结构体、类以及联合体的删除重命名字段的不兼容改变类型的检测规则为使用字段进行检测;对于结构体、类以及联合体的字段类型变化的不兼容改变类型的检测规则为使用字段和匹配字段类型进行检测;对于类数据类型添加删除基类的不兼容改变类型,使用基类的检测规则;对于类数据类型更改字段或方法的访问级别的不兼容改变类型,使用字段或方法检测规则;对于类数据类型添加纯虚方法的不兼容改变类型,使用纯虚方法检测规则;对于枚举数据类型删除重命名成员的不兼容改变类型,使用成员检测规则;源码后向不兼容改变中的符号改变包括:对于删除符号的不兼容改变类型使用符号的检测规则;对于添加删除参数的不兼容改变模型使用参数的检测规则;对于改变参数类型的不兼容改变类型采用匹配参数类型的检测规则;对于删除默认参数值的不兼容改变类型使用参数检测规则,对于返回值类型变化的不兼容改变类型使用匹配返回值类型检测规则,对于属性变化的不兼容改变类型使用符号检测规则;以待检测软件的二进制文件或源码为输入,根据后向不兼容改变中的改变的类型,采取相应的检测规则,确定后向不兼容改变中变化的元素在待检测软件中的使用情况;其中,对于二进制文件确定后向不兼容改变中变化的元素在待检测软件中的使用情况的具体步骤包括:对于二进制后向不兼容改变的数据类型改变,确认改变的元素是否被待检测软件使用;对于二进制后向不兼容改变的符号改变,确认已经在预处理阶段确认改变的元素被待检测软件使用;对于二进制后向不兼容改变的常量改变,确认改变的元素被待检测软件使用;对于源码确定后向不兼容改变中变化的元素在待检测软件中的使用情况的具体步骤包括:对于源码后向不兼容改的变数据类型改变,确认改变的元素被待检测软件使用;对于源码后向不兼容改变的符号改变,确认已经在预处理阶段确认改变的元素被待检测软件使用;如果后向不兼容改变打破了后向兼容,并且后向不兼容改变中发生改变的相应元素在待检测软件中的使用符合vpre版本中的定义,则vnext版本为后向不兼容库版本,并报告依赖缺陷;其中,vpre为前一个版本,vnext为后一个版本。

全文数据:

权利要求:

百度查询: 中国人民解放军国防科技大学 软件依赖范围自动推断方法、装置、计算机设备和存储器

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。