[发明专利]一种面向二进制代码的导向型模糊测试方法有效

专利信息
申请号: 202010717878.2 申请日: 2020-07-23
公开(公告)号: CN111858358B 公开(公告)日: 2023-07-25
发明(设计)人: 王鹏飞;卢凯;周旭;乐泰;唐勇;解炜;喻波;杨强 申请(专利权)人: 中国人民解放军国防科技大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 湖南兆弘专利事务所(普通合伙) 43008 代理人: 周长清
地址: 410073 湖南*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 二进制 代码 导向 模糊 测试 方法
【权利要求书】:

1.一种面向二进制代码的导向型模糊测试方法,其特征在于,步骤为:

步骤S1:分析目标程序并标记目标基本块地址;

步骤S2:载入二进制程序并获取程序地址信息,并将二进制代码进行反汇编得到汇编代码,构建程序控制流图;

步骤S3:在程序执行时记录分支跳转情况,并在执行结束后进行解码,导出执行路径,构建并完善控制流图,更新分支执行的统计数据;利用PT通过TNT包记录直接跳转指令是否跳转,通过TIP包记录间接跳转指令实际的跳转地址;通过动态执行目标程序并解码PT记录的数据包,得出由跳转指令地址和实际跳转地址组成的执行trace,还原程序实际的执行路径;

所述基于PT数据包解码得到的实际执行路径,包括:

(1)通过实际执行中的跳转,填补控制流图中缺失的间接跳转,使静态构建的控制流图在动态执行中趋向完整;

(2)对控制流图中不同分支跳转的次数进行统计,计算各分支跳转的概率;同一跳转指令在不同输入的多次执行中反映出的统计特征,间接反映出变异生成的输入数据满足该分支的难易程度,用于预测在下一轮执行中该分支的跳转概率;

(3)在控制流图上标出实际执行的节点,用于后续与目标节点距离的计算;

步骤S4:基于当前的执行路径、结合分支的执行统计数据,计算当前路径与目标的距离;

步骤S5:用计算的目标距离作为反馈,引导下一轮种子的选取和测试。

2.根据权利要求1所述的面向二进制代码的导向型模糊测试方法,其特征在于,所述步骤S1中,对于目标地址的选取分为两种:

(a) 选择某个特定的基本块为目标,只要一个基本块被选中,则基本块内的指令都会被逐一执行;

(b) 选择某个函数的调用地址,即call指令的地址;该地址也是一个间接跳转指令的地址;通过IDA载入二进制代码,直接读取目标基本块或者目标函数调用的地址。

3. 根据权利要求1所述的面向二进制代码的导向型模糊测试方法,其特征在于,所述步骤S2中,通过Python CLE载入二进制程序,读取程序的地址区间和入口地址;然后使用capstone将二进制代码反汇编,得到汇编代码每条指令对应的地址。

4. 根据权利要求1所述的面向二进制代码的导向型模糊测试方法,其特征在于,所述步骤S3中,所述控制流图的节点node=(cur, prev, next, count, in_cur_trace,is_cofi_node),其中,cur为当前节点的地址,prev为前一节点的地址,next为后一节点的地址,count为当前节点执行数目的统计,in_cur_trace标记该节点是否在当前执行路径中,is_cofi_node标识该节点是否为跳转指令。

5.根据权利要求1-4中任意一项所述的面向二进制代码的导向型模糊测试方法,其特征在于,所述步骤S4中,基于构建的控制流图,对当前执行路径和目标地址进行分析,如果当前执行路径经过目标地址,则当前的测试样本输入满足导向性要求,结束搜索;如果当前执行路径未经过目标地址,则从目标地址开始,沿着控制流图反向搜索,直到某个节点属于当前的执行路径,记录此节点到目标地址的跳转路径,即为当前执行路径到目标地址的跳转路径;如果搜索结束时最后的节点不是属于当前执行路径上的节点,则不能通过反向搜索将目标节点与当前执行路径连接,说明当前控制流图还不完整。

6.根据权利要求1-4中任意一项所述的面向二进制代码的导向型模糊测试方法,其特征在于,所述步骤S5中,对种子能量进行再分配,即基于当前执行路径到目标地址的跳转路径,结合跳转路径上各个分支的跳转概率,对当前的测试样本输入进行打分,并将分数反馈给AFL模糊测试框架。

7.根据权利要求6所述的面向二进制代码的导向型模糊测试方法,其特征在于,基于反馈的分数,为当前种子在后续测试中分配更能量;分数取值范围为0到1,如果分数为1,说明当前输入对应的执行路径正好经过目标地址,接下来的模糊测试给其分配最高能量;如果分数介于0和1之间,说明当前输入对应的执行路径经过有限次跳转之后,可达目标路径,且分数越高,到达目标地址的可能性越高;分数越高,分配能量越多。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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