买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种语法指导的WebAssembly运行时缺陷检测方法_大连理工大学_202410030479.7 

申请/专利权人:大连理工大学

申请日:2024-01-09

公开(公告)日:2024-04-12

公开(公告)号:CN117873889A

主分类号:G06F11/36

分类号:G06F11/36

优先权:

专利状态码:在审-实质审查的生效

法律状态:2024.04.30#实质审查的生效;2024.04.12#公开

摘要:本发明提供了一种语法指导的WebAssembly运行时缺陷检测方法,可用于几种常见且被广泛使用的WebAssembly运行时的缺陷检测,例如开源工具Wasmer、Wasmtime等;亦可根据特定WebAssembly运行时的特点,对本发明的相关步骤进行适配,从而检测其他WebAssembly运行时的缺陷。本发明能够有效地对WebAssembly运行时中的缺陷进行检测,从而帮助开发人员发现WebAssembly运行时中存在的问题,并辅助完成后续的缺陷定位与修复工作,提高工具质量。

主权项:1.一种语法指导的WebAssembly运行时缺陷检测方法,其特征在于,包括以下步骤:步骤1:构建初始WebAssembly种子程序;其中,WebAssembly程序的生成,首先使用代码生成器Csmith生成一组具有不同校验和结果的C程序,随后利用Emscripten,将这些C程序编译成相应的WebAssembly格式,构成种子集合S1;该过程亦可根据实际需要,选择其他工具或方法进行实现;步骤2:对生成的WebAssembly程序进行预处理;具体为:对种子集合S1中的WebAssembly程序执行静态检查,并将其在任意一种WebAssembly运行时上的执行结果与使用传统C编译器编译其原始C程序得到的本机程序的执行结果进行比对,识别并删除存在未定义行为的部分,得到预处理后的种子集合S2;其中,未定义行为包括比对结果不一致、程序解析或执行异常,以及程序长时间执行不终止的情况;步骤3:构建候选数据集;具体为:将种子集合S2中的WebAssembly程序解析为语法树,利用深度优先遍历算法收集其中的叶子节点和子树结构,并分别构建叶子节点数据集Leaves以及子树数据集Subtrees;步骤4:检测是否达到测试时间限制;若未达到,则转到步骤5,使用语法指导的变异方法生成WebAssembly程序变体;若已达到,则停止测试;步骤5:使用语法指导的变异方法生成WebAssembly程序变体,得到一组测试用例变异体集合P;其中,每次变异使用的自定义变异算子由覆盖率信息指导选择;步骤6:判断是否生成的所有WebAssembly程序变体都已经过测试;若集合P中仍存在尚未经过测试的程序变体,则从中随机选取一个程序p作为测试用例,并将其状态标记为“已测试”;若不存在尚未经过测试的程序变体,则转至步骤4,继续执行;步骤7:使用预先选定的待测WebAssembly运行时执行测试程序,并分别记录相应的执行结果;其中,所选WebAssembly运行时的数量不少于3种;步骤8:判断是否出现崩溃;若执行测试程序p的过程中出现崩溃,则转到步骤10,进行测试用例约简,生成缺陷报告,随后转到步骤6,继续执行;若没有出现崩溃,则转到步骤9,继续执行;步骤9:判断执行结果是否一致;具体为:比较使用不同WebAssembly运行时执行相同测试程序p得到的执行结果是否一致,若结果一致,则转到步骤6,继续执行;若不一致,则转到步骤10,进行测试用例约简,生成缺陷报告,随后转到步骤6,继续执行;步骤10:进行测试用例约简,生成缺陷报告;具体来说:通过将触发缺陷的测试程序分解为多个代码块,逐一删除每个代码块并观察错误是否仍然存在,以此迭代地完成约简操作。

全文数据:

权利要求:

百度查询: 大连理工大学 一种语法指导的WebAssembly运行时缺陷检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。