[发明专利]基于加权软件行为图的等价变异体检测方法在审
申请号: | 202210068537.6 | 申请日: | 2022-01-20 |
公开(公告)号: | CN114416570A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 苏小红;龚丹;王甜甜;张彦航 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨龙科专利代理有限公司 23206 | 代理人: | 李智慧 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 加权 软件 行为 等价 异体 检测 方法 | ||
1.一种基于加权软件行为图的等价变异体检测方法,其特征在于所述方法包括如下步骤:
步骤1:利用静态分析工具解析原始程序和变异体程序的源代码,生成各源代码的抽象语法树,在抽象语法树上实施语句级插桩后反向生成带探针语句的原始程序和变异体程序;
步骤2:执行带探针语句的原始程序和变异体程序,获得程序的执行结果和语句编号序列,对比变异体的执行结果和原始程序的执行结果,将变异体划分为“杀死的”和“存活的”两类,其中,被杀死的变异体一定与原始程序不等价,在后面的步骤中忽略;存活的变异体可能与原始程序等价,在后面的步骤中继续处理;
步骤3:分别为原始程序和变异体程序生成加权软件行为图;
步骤4:对比原始程序的加权软件行为图与变异体程序的加权软件行为图,从而判断变异体是否等价于原始程序。
2.根据权利要求1所述的基于加权软件行为图的等价变异体检测方法,其特征在于所述步骤1的具体步骤如下:
步骤11:词法和语法解析源代码,得到以抽象语法树表达的源代码结构信息,同时记录下源代码中每条语句所在的行号;
步骤12:先序遍历抽象语法树,识别语句类型,在可执行语句位置插入输出语句行号的探针语句节点;
步骤13:插入输出文件流变量定义、打开、关闭语句节点;
步骤14:将插入探针语句节点的抽象语法树反向生成源代码。
3.根据权利要求1所述的基于加权软件行为图的等价变异体检测方法,其特征在于所述步骤3中,加权软件行为图的具体构造步骤如下:
步骤31:遍历程序执行后得到的包含m个语句编号的轨迹序列trace={s1,s2,...,si-1,si,...,sm},相邻的两个元素si-1,si意味着两条语句间存在转移关系,即加权软件行为图中的一条有向边e,而si-1,si是这条边的起始顶点和终止顶点;
步骤32:收集不重复的顶点,构成加权软件行为图的顶点集合V,收集不重复的边,构成加权软件行为图的边的集合E;
步骤33:统计每一条边e出现次数c,以及与e具有相同起始顶点的边的数量n,然后按公式计算每条边的权值,其中ci是各条与e具有相同起始顶点的边的出现次数,i=1,2,...,n,得到加权软件行为图的边权值集合W。
4.根据权利要求1所述的基于加权软件行为图的等价变异体检测方法,其特征在于所述步骤4的具体步骤如下:
步骤41:对于在同一个测试数据t下得到的一对加权软件行为图,即原始程序orig的加权软件行为图和其任意一个存活的变异体程序mut的加权软件行为图按下述公式判断二者是否相等:
其中,Vorig、Eorig和Vmut、Emut分别为原始程序和变异体程序的加权软件行为图的顶点集、边集,表示原始程序加权软件行为图中任意一条有向边i,j的权值,相应地,变异体程序加权软件行为图中对应边的权值表示为
当两个加权软件行为图的顶点集相同、边集相同,且每一条始末顶点相同的有向边的权值也相同时,和是相等的;如果和不满足该等式,则执行步骤42,否则执行步骤43;
步骤42:步骤4结束,该变异体不等价于原始程序;
步骤43:如果尚有未被对比的加权软件行为图对,则取下一对加权软件行为图,执行步骤41;否则步骤4结束,该变异体等价于原始程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210068537.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种财务管理装置
- 下一篇:一种文档的评论显示方法、装置、设备及介质