[发明专利]一种动态的二进制代码测试用例生成方法有效

专利信息
申请号: 201210243495.1 申请日: 2012-07-13
公开(公告)号: CN102799529A 公开(公告)日: 2012-11-28
发明(设计)人: 李舟军;马金鑫;忽朝俭;章张锴 申请(专利权)人: 北京航空航天大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京慧泉知识产权代理有限公司 11232 代理人: 王顺荣;唐爱华
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 动态 二进制 代码 测试 生成 方法
【权利要求书】:

1.一种动态的二进制代码测试用例生成方法,其特征在于:该方法的具体步骤如下:

步骤A.实现二进制代码运行时的动态插装框架,观察二进制的执行过程;

步骤B.根据动态插装框架收集到的动态运行时信息,如指令、寄存器、内存访问信息,把二进制代码翻译成中间语言;

步骤C.根据动态插装框架中记录的输入点信息,将输入点作为符号,传播与输入点相关的执行过程,在每个分支处收集路径约束;

步骤D.将收集到的路径约束,通过变异路径算法得到新的路径约束,将该路径约束转化为求解器可识别的查询语句;

步骤E.使用求解器计算新路径约束中,输入需满足的条件,再借助动态插装框架把新产生的输入交给二进制代码再次执行。

2.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤A中所述的二进制代码为Windows平台下的x86机器代码;所述的二进制代码的动态插装框架,包括:

A1.在每条指令执行完成后插装;

A2.在每个线程开始时插装;

A3.在每个动态链接库被加载时插装;

A4.记录每条指令的执行上下文;

A5.记录每次内存访问信息;

A6.记录分支指令是否被执行。

3.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤B所述的中间语言中,包括三种存储介质:

B11.临时变量,在每个基本块中临时申请,用于实现静态单赋值,为寄存器与内存间的媒介;

B12.寄存器,与机器指令中的寄存器相同,读写寄存器使用中间语言中的Get和Put操作完成;

B13.内存,内存地址由常量或临时变量表示,读写内存使用中间语言中的LDle和STle操作完成。

4.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤B中所述的中间语言由语句IRStmt组成,语句IRStmt包括:

B21.IMark语句,表示每个基本块的入口标志,其中包括该基本块对应机器指令的开始地址及该指令的字节数;

B22.Put语句,表示把临时变量的值写入寄存器;

B23.Store语句,表示把临时变量的值写入内存;

B24.IRDirty语句,表示调用有副作用的函数;

B25.Exit语句,表示基本块的出口。

5.根据权利要求4所述的一种动态的二进制代码测试用例生成方法,其特征在于:所述的语句IRStmt由表达式IRExpr组成,表达式IRExpr包括:

B31.Get表达式,表示从寄存器中读取值;

B32.Tmp表达式,表示临时变量;

B33.Binop表达式,表示二元操作;

B34.Unop表达式,表示一元操作;

B35.Load表达式,表示从内存中读取值;

B36.Const表达式,表示常量;

B37.MuxOX表达式,表示if-then-else语句。

6.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤C所述的输入点包括三种情况:

命令行参数:程序运行时传递的参数,如控制台程序启动时传递的参数;

文件类输入:表示通过ReadFile读取文件内容,作为输入;

网络输入:表示通过Recv、RecvFrom读取网络中的内容,作为输入。

7.根据权利要求1所述的一种动态的二进制代码测试用例生成方法,其特征在于:步骤C所述的将输入点作为符号,即传播符号方法是在中间语言上进行,需要考虑以下几种情况:

C1.Put操作,检查赋值给寄存器的临时变量是否依赖于输入;

C2.赋值给临时变量时,左值需要考虑以下几种情况:

C21.从临时变量中读,检查该临时变量是否依赖于输入;

C22.从内存中读,检查该内存中的值是否依赖于输入;

C23.从寄存器中读,检查该寄存器是否依赖于输入;

C24.一元操作与二元操作,检查操作数是否依赖于输入;

C3.Store操作,检查写入内存的临时变量是否依赖于输入。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210243495.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top