[发明专利]新版本程序缺陷检测方法及装置有效
申请号: | 201810391348.6 | 申请日: | 2018-04-27 |
公开(公告)号: | CN108804308B | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 崔展齐;郑丽伟;刘秀磊;牛科 | 申请(专利权)人: | 北京信息科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/71;G06F8/75 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100192 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 新版本 程序 缺陷 检测 方法 装置 | ||
1.一种新版本程序缺陷检测方法,其特征在于,包括:
获取目标应用的历史版本程序和新版本程序;
根据所述历史版本程序和所述新版本程序获得对应的函数调用语句集;
根据所述函数调用语句集获得所述历史版本程序和所述新版本程序分别对应的关联规则集;
根据所述关联规则集获得用于所述新版本程序的检测用关联规则集;
根据所述检测用关联规则集和所述新版本程序的函数调用语句集获得疑似缺陷集;
其中,根据所述检测用关联规则集和所述新版本程序的函数调用语句集获得疑似缺陷集,包括:
依次确定所述新版本程序对应的所述函数调用语句集中的函数调用语句子集作为待检测子集;
确定所述检测用关联规则集中的检测用关联规则,所述检测用关联规则中包括第一关联函数调用语句和第二关联函数调用语句;
在确定所述检测用关联规则中的第一关联函数调用语句与待检测子集中的函数调用语句匹配成功,且第二关联函数调用语句与待检测子集中的函数调用语句匹配不成功时,根据怀疑度计算公式计算得到所述待检测子集与所述检测用关联规则之间的怀疑度;
在确定所述怀疑度大于预设最小怀疑度时,将所述待检测子集与所述检测用关联规则之间的怀疑关系存储于疑似缺陷集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述历史版本程序和所述新版本程序获得对应的函数调用语句集,包括:
获取待检测版本程序;
对所述待检测版本程序进行反编译处理,获得所述待检测版本程序对应的函数集;
确定所述函数集中的目标函数,生成对应的抽象语法树;
遍历所述抽象语法树的所有结点,判断结点是否为调用语句,获得判断结果;
根据判断结果筛选出所述目标函数中的函数调用语句,生成所述目标函数的函数调用语句子集;
根据所述函数集中的所有函数对应的函数调用语句子集生成函数调用语句集;
其中,所述待检测版本程序为历史版本程序和新版本程序。
3.根据权利要求2所述的方法,其特征在于,所述根据所述关联规则集获得用于所述新版本程序的检测用关联规则集,包括:
获取所述历史版本程序对应的关联规则集,将其作为第一关联规则集,以及获取所述新版本程序对应的关联规则集,将其作为第二关联规则集;
依次确定所述第一关联规则集中的关联规则作为目标关联规则;
将所述目标关联规则与所述第二关联规则集中的关联规则进行匹配,获得与所述目标关联规则相同的匹配关联规则;
获取所述目标关联规则和所述匹配关联规则的置信度变化值,在所述置信度变化值小于零时,将所述匹配关联规则存储于检测用关联规则集中;
将所述第二关联规则集中未与所述目标关联规则相匹配的关联规则存储于检测用关联规则集中。
4.根据权利要求1所述的方法,其特征在于,所述怀疑度计算公式包括:
其中,suspicious(FDβ,i,arβ,j)为怀疑度,FDβ,i为所述新版本程序的所述函数调用语句集中的第i个函数调用语句子集,arβ,j为所述检测用关联规则集中的第j个检测用关联规则,Aβ,j为第j个检测用关联规则中的第一关联函数调用语句,Bβ,j为第j个检测用关联规则中的第二关联函数调用语句;support_count(Aβ,j∪Bβ,j)为所述函数调用语句集同时包含Aβ,j和Bβ,j的次数,support_count(Aβ,j)为所述函数调用语句集包含Aβ,j的次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息科技大学,未经北京信息科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810391348.6/1.html,转载请声明来源钻瓜专利网。