一种面向WebAssembly虚拟机的模糊测试方法技术

技术编号:34615512 阅读:34 留言:0更新日期:2022-08-20 09:21
本发明专利技术公开了一种面向WebAssembly虚拟机的模糊测试方法,属于软件测试领域;具体为:首先,初始化将各种不同的变异操作依次加入自适应变异表中;然后,利用合法的WebAssembly代码文件,对应生成WebAssembly模块,并逐个进行初始测试,将符合要求的模块存储到队列中;从队首的WebAssembly模块开始,对其应用自适应变异表当中的变异操作,并输入WebAssembly虚拟机进行测试;当测试的执行过程中存在新的路径或崩溃,对自适应变异表进行修改;直至当前WebAssembly模块的变异次数达到预设的上限,舍弃当前WebAssembly模块,继续从队列中选择新的WebAssembly模块进行变异,直至队列为空,将之前舍弃的所有变异后的WebAssembly模块重新加入至队列中,周而复始地进行模糊测试,直到用户手动停止;本发明专利技术提高了WebAssembly虚拟机的模糊测试工具的性能。拟机的模糊测试工具的性能。拟机的模糊测试工具的性能。

【技术实现步骤摘要】
一种面向WebAssembly虚拟机的模糊测试方法


[0001]本专利技术属于软件测试领域,具体是一种面向WebAssembly虚拟机的模糊测试方法。

技术介绍

[0002]随着互联网的发展与普及,越来越多的事务需要在各种计算机上处理,能跨平台执行的技术逐渐受到了青睐。其中Web技术由于在各平台上都具有很好的兼容性,使用较为广泛。
[0003]WebAssembly语言在Web技术中应运而生,通过在网页当中嵌入WebAssembly代码以执行其对应功能。WebAssembly需要通过WebAssembly虚拟机执行WebAssembly代码。如果虚拟机的实现存在错误,WebAssembly的执行可能会导致错误的结果,甚至遭到人为攻击。为了避免这些情况的发生,可以采用模糊测试技术尝试找出虚拟机实现时存在的错误。
[0004]模糊测试是软件测试中常用的一种技术,其核心思想是大量地自动生成测试用例,并输入给被测软件,监控软件运行的状态,以尝试发现软件运行的时候存在的错误。现有输入数据的生成方式主要是变异输入,通过获取软件运行过程中的信本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种面向WebAssembly虚拟机的模糊测试方法,其特征在于,具体步骤如下:首先、初始化将针对WebAssembly模块的各种不同的变异操作,依次加入自适应变异表中;然后、读取初始各WebAssembly代码文件并反序列化,将不合法的WebAssembly代码文件舍弃;针对各合法的WebAssembly代码文件,对应生成各自的WebAssembly模块,并逐个输入WebAssembly虚拟机进行初始测试,将符合测试要求的模块存储到模糊测试的队列中;最后、从队列中取出队首WebAssembly模块,从自适应变异表当中随机选择一种变异操作应用后,输入WebAssembly虚拟机进行测试;判断测试的执行过程中是否存在新的路径或崩溃,如果是,对自适应变异表进行修改后判断变异次数;否则,直接判断当前WebAssembly模块的变异次数是否达到预设的上限,如果是,舍弃当前WebAssembly模块,继续从队伍选择队首WebAssembly模块重复进行变异操作;否则,继续对当前WebAssembly模块进行下一次的变异操作,直至达到设定的变异次数上限;直至当前的队列为空,将之前舍弃的所有变异后的WebAssembly模块重新加入至队列中,周而复始地进行模糊测试,直到用户手动停止。2.如权利要求1所述的一种面向WebAssembly虚拟机的模糊测试方法,其特征在于,所述变异操作共16种,自适应变异表是一个长度为256的函数指针数组,每个指针元素都对应存放一种变异操作;前16个指针元素用于固定存放...

【专利技术属性】
技术研发人员:姜博黄雨鹤薛冰清李梓超
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1