[发明专利]一种基于程序追踪和混合执行的模糊测试系统有效
| 申请号: | 201811612236.5 | 申请日: | 2018-12-27 |
| 公开(公告)号: | CN109739755B | 公开(公告)日: | 2020-07-10 |
| 发明(设计)人: | 田东海;李斌斌;王文杰;马锐;王雪霏;王夏菁;刘叔可;蒋瑾曼 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京理工大学专利中心 11120 | 代理人: | 刘芳;仇蕾安 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 程序 追踪 混合 执行 模糊 测试 系统 | ||
1.一种基于程序追踪和混合执行的模糊测试系统,其特征在于,该系统主要包括三个模块,分别是模糊测试模块、数据流追踪模块和混合执行模块,其中:
模糊测试模块的输入为目标二进制程序、种子测试用例和由数据流追踪模块提取的种子测试用例中字节序列对应变量的类型信息,输出为触发新路径的测试用例,该测试用例存储到测试用例集中,所述类型信息用于辅助对种子测试用例进行变异生成新的候选测试用例,并将所述候选测试用例插入到候选测试用例队列中,同时从候选测试用例队列头部选择一个候选测试用例执行;在目标二进制程序执行过程中,利用CPU程序追踪机制对目标程序进行追踪,获取路径信息以更新全局路径信息和筛选出触发新路径的测试用例;
数据流追踪模块的输入为目标二进制程序和模糊测试模块加载的种子测试用例,输出为种子测试用例中字节序列对应变量的类型信息和目标二进制程序中数据的依赖关系,该依赖关系用于辅助混合执行模块进行符号映射和收集路径约束;
混合执行模块的输入为数据流追踪模块实时提供的目标二进制程序中数据的依赖关系,输出为由该模块新生成的可能触发新路径的候选测试用例;
模糊测试模块和混合执行模块共享目标二进制程序的全局路径信息;
所述模糊测试模块,用于加载种子测试用例和类型信息、变异测试用例、执行目标二进制程序、CPU程序追踪、筛选候选测试用例;
加载种子测试用例和类型信息:在开始启动模糊测试时,从测试用例集中加载初始测试用例作为种子测试用例,同时加载从数据流追踪模块得到的该种子测试用例中字节序列对应变量的类型信息;在之后的模糊测试中,模糊测试模块会从测试用例集中选择下一个种子测试用例;
变异测试用例:将获得的所述种子测试用例进行变异,生成新的候选测试用例,插入候选测试用例队列,供下一步执行目标二进制程序使用;
执行目标二进制程序:从候选测试用例队列头部选择一个候选测试用例执行,收集该候选测试用例执行过程中经过的时间和可能产生的错误信息,其中执行时间信息作为下一次选择种子测试用例的依据之一,错误信息则用于记录目标二进制程序执行该候选测试用例后触发的错误;
CPU程序追踪:在目标二进制程序执行时,CPU程序追踪机制记录程序的执行情况,将记录的追踪信息转换为基本块的执行信息,根据所述基本块执行信息生成目标二进制程序在本次执行中对应的路径信息;
筛选候选测试用例:将所述新生成的路径信息与全局路径信息进行比对,根据比对结果,判断是否有新路径发现,如果当前执行的候选测试用例不能发现新路径,将其丢弃;否则将其作为测试用例,保存到测试用例集中,以供下一次选择种子测试用例时使用,并更新全局路径信息。
2.根据权利要求1所述基于程序追踪和混合执行的模糊测试系统,其特征在于,所述候选测试用例包括模糊测试模块生成的候选测试用例和混合执行模块生成的候选测试用例,所有候选测试用例构成一个候选测试用例队列,其中,混合执行模块生成的候选测试用例具有较高的优先级,优先插入队列头部。
3.根据权利要求1所述基于程序追踪和混合执行的模糊测试系统,其特征在于,所述利用CPU程序追踪机制对目标二进制程序进行追踪,获得目标二进制程序的执行信息,该执行信息用于更新全局路径信息和筛选出触发新路径的测试用例,如果目标二进制程序每次执行测试用例时产生新的路径信息,则会对现有全局路径信息进行更新。
4.根据权利要求1所述基于程序追踪和混合执行的模糊测试系统,其特征在于,所述数据流追踪模块用于字节标记和追踪、提取变量的类型信息;
字节标记和追踪:通过拦截目标二进制程序的输入函数获取输入的所有字节,对其中每个字节进行标记;在后续执行过程中,追踪被标记字节的传播过程以提取类型信息,并通过分析程序指令获得目标二进制程序执行时的数据依赖关系;
提取变量类型信息:当被标记的字节在内存中连续出现时,根据连续出现的字节序列长度推断对应变量的类型信息;当目标二进制程序调用库函数时,通过库函数的调用信息推断输入参数中被标记字节序列对应变量的类型信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811612236.5/1.html,转载请声明来源钻瓜专利网。





