基于依概率指数止损算法的导向型灰盒模糊测试方法
文献发布时间:2024-04-18 20:00:50
技术领域
本发明涉及的是一种模糊测试领域的技术,具体是一种基于依概率指数止损算法的导向型灰盒模糊测试方法。
背景技术
现有导向型模糊测试聚焦于待测程序的目标点,将计算资源不断地向目标点倾斜,对待测程序进行深度优先搜索。从解空间的角度来看,覆盖率型灰盒模糊测试的解是所有路径;导向型灰盒模糊测试的解是特定路径。现有的导向型灰盒模糊测试器没有充分地利用已有的控制流信息(iCFG),未让不可达的测试用例及时地止损。
发明内容
本发明针对现有技术现有的导向型灰盒模糊测试器不够高效且依赖于诸多辅助技术的问题,提出一种基于依概率指数止损算法的导向型灰盒模糊测试方法,以指数级递增的概率提前中止不可达的测试用例,能够在不提前中止的情况下防止不可达的测试用例的误报;在提前中止的情况下,它节约了大量的计算资源。相比于引入其它技术的改进方法,FGo充分地利用了iCFG所包含的不可达信息,不产生任何额外的可达性分析所造成的时间开销(比如训练关于可达性的分类神经网络)。
本发明是通过以下技术方案实现的:
本发明涉及一种基于依概率指数止损算法的导向型灰盒模糊测试方法,根据待测程序的目标点,计算其控制流信息(iCFG)的各个函数和基本块与目标点的距离;以覆盖率、距离作为运行时的反馈信息,通过代码插桩使覆盖率趋于增大、距离趋于减小,并在不可达的基本块之前插入依概率指数止损函数;循环生成测试用例并执行待测程序,直至满足终止条件。
本发明涉及一种实现上述方法的基于依概率指数止损算法的导向型灰盒模糊测试系统,包括:iCFG提取模块、距离计算模块、插桩模块和模糊测试模块。
技术效果
相比于引入其它技术的改进方法,FGo充分地利用了iCFG所包含的不可达信息,不产生任何额外的可达性分析所造成的时间开销(比如训练关于可达性的分类神经网络)并以指数级递增的概率提前中止不可达的测试用例。
附图说明
图1为本发明系统示意图;
图2为代码插桩示意图;
图3为本发明流程图。
具体实施方式
本实施例涉及一种基于依概率指数止损算法的导向型灰盒模糊测试方法,根据待测程序的目标点,计算其控制流信息(iCFG)的各个函数和基本块与目标点的距离;以覆盖率、距离作为运行时的反馈信息,通过代码插桩使覆盖率趋于增大、距离趋于减小,并在不可达的基本块之前插入依概率指数止损函数;循环生成测试用例并执行待测程序,直至满足终止条件。
所述的代码插桩,具体包括:
步骤1)设置两个基本块的索引的异或值作为该基本块边的索引,并通过移位操作区分基本块边的方向,对已发现的基本块边计数,通过模糊测试模块生成测试用例趋于增加新的基本块边或让已发现的基本块边数量发生阶跃。具体的实现代码详见已经开源的AFL。
步骤2)统计步骤1生成的测试用例途径的基本块的平均距离,通过模糊测试模块生成测试用例趋于减小测试用例和目标点的距离。具体的实现代码详见已经开源的AFLGo。
步骤3)在步骤2生成的测试用例的不可达的基本块之前插入一个依概率指数止损函数,当测试用例途径该基本块时,通过该函数以预设概率提前中止执行过程。
如图3所示,所述的依概率指数止损函数包括:
步骤a)当当前基本块的距离小于零,即代表不可达的初始距离,进入依概率指数止损的环节;否则,不作处理。
步骤b)先通过srand(time(0))初始化随机数种子,然后通过rand()生成一个随机数。
步骤c)当测试用例执行到最后一个基本块或者该随机数介于止损区间,通过assert(false)提前中止该测试用例的执行过程;否则,不作处理。
步骤d)执行当前基本块并进入下一个基本块。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
- 一种图像拍摄方法、装置、设备及存储介质
- 确定物品摆放位置的方法、装置、设备及计算机可读介质
- 掀背门安装点位置的确定方法、装置、设备和存储介质
- 一种位置确定方法、装置和存储介质
- 一种音频设备的确定方法、装置、设备和存储介质
- 一种拍摄位置确定方法、装置、设备及介质
- 一种拍摄位置确定方法、装置、设备及介质