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

【发明授权】基于加权软件行为图的等价变异体检测方法_哈尔滨工业大学_202210068537.6 

申请/专利权人:哈尔滨工业大学

申请日:2022-01-20

公开(公告)日:2024-05-28

公开(公告)号:CN114416570B

主分类号:G06F11/36

分类号:G06F11/36

优先权:

专利状态码:有效-授权

法律状态:2024.05.28#授权;2022.05.20#实质审查的生效;2022.04.29#公开

摘要:本发明公开了一种基于加权软件行为图的等价变异体检测方法,首先解析原始程序和变异体的源代码,进行语句级插桩,为后续执行时捕获执行路径奠定基础。其次,分别运行原始程序和变异体,在相同的输入下,如果变异体的输出与原始程序的输出不一致,这类变异体一定是不等价的,直接排除,否则可能是等价的,继续后续处理。最后,逐一对比相同输入下变异体和原始程序的加权软件行为图,如果在任一输入下二者不相等,则该变异体与原始程序不等价,如果在全部输入下二者始终相等,则该变异体等价于原始程序。该方法既能够像人工判定时一样准确追踪程序的内部执行行为,提高等价变异体判断的准确性,又能够减少人工判定成本,提高等价变异体检测的效率。

主权项:1.一种基于加权软件行为图的等价变异体检测方法,其特征在于所述方法包括如下步骤:步骤1:利用静态分析工具解析原始程序和变异体程序的源代码,生成各源代码的抽象语法树,在抽象语法树上实施语句级插桩后反向生成带探针语句的原始程序和变异体程序;步骤2:执行带探针语句的原始程序和变异体程序,获得程序的执行结果和语句编号序列,对比变异体的执行结果和原始程序的执行结果,将变异体划分为“杀死的”和“存活的”两类,其中,被杀死的变异体一定与原始程序不等价,在后面的步骤中忽略;存活的变异体可能与原始程序等价,在后面的步骤中继续处理;步骤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:对比原始程序的加权软件行为图与变异体程序的加权软件行为图,从而判断变异体是否等价于原始程序,具体步骤如下:步骤41:对于在同一个测试数据t下得到的一对加权软件行为图,即原始程序orig的加权软件行为图和其任意一个存活的变异体程序mut的加权软件行为图按下述公式判断二者是否相等: 其中,Vorig、Eorig和Vmut、Emut分别为原始程序和变异体程序的加权软件行为图的顶点集、边集,表示原始程序加权软件行为图中任意一条有向边i,j的权值,相应地,变异体程序加权软件行为图中对应边的权值表示为当两个加权软件行为图的顶点集相同、边集相同,且每一条始末顶点相同的有向边的权值也相同时,和是相等的;如果和不满足该等式,则执行步骤42,否则执行步骤43;步骤42:步骤4结束,该变异体不等价于原始程序;步骤43:如果尚有未被对比的加权软件行为图对,则取下一对加权软件行为图,执行步骤41;否则步骤4结束,该变异体等价于原始程序。

全文数据:

权利要求:

百度查询: 哈尔滨工业大学 基于加权软件行为图的等价变异体检测方法

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