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

一种以太坊虚拟机的模糊测试方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:浙江大学

摘要:本发明公开一种以太坊虚拟机的模糊测试方法,包括:对以太坊虚拟机进行代码插桩,以收集测试用例执行过程中覆盖的代码执行路径;构建数个由以太坊交易和执行交易前的账户状态组成的种子测试用例,组成初始的测试用例集合;从集合中选择一个排序靠前的测试用例,对其进行随机的变异操作;将变异后的测试用例提供给不同以太坊虚拟机,这些虚拟机根据测试用例设置账户状态,随后执行测试用例中的以太坊交易;将覆盖新代码路径的测试用例添加到集合中,通过比较不同虚拟机执行过程产生的状态是否一致来发现潜在的漏洞。本发明解决了现有方法无法生成复杂状态且容易漏报的问题,能够有效地挖掘不同以太坊虚拟机底层实现的漏洞。

主权项:1.一种以太坊虚拟机的模糊测试方法,其特征在于,包括以下步骤:步骤一:对以太坊虚拟机进行代码插桩,以收集测试用例执行过程中覆盖的代码执行路径;步骤二:构建种子测试用例,组成初始的测试用例集合,并根据覆盖的代码路径和执行时长对测试用例进行排序;所述测试用例包括一条以太坊交易的描述和执行交易前的以太坊账户状态;所述执行交易前的以太坊账户状态包括多个以太坊账户,每个以太坊账户对应一个唯一的地址,其状态包括余额、随机数、存储和部署的代码;测试用例集合中的测试用例排序规则为:按照覆盖的代码路径的数量从高到低进行排序;对于覆盖的代码路径的数量完全相同的测试用例,则按照执行时长从短到长进行排序;步骤三:从所述测试用例集合中选择一个排序靠前的测试用例,对其进行一个随机的变异操作来修改被选中测试用例的内容;步骤四:将变异后的测试用例提供给不同以太坊虚拟机作为输入,不同以太坊虚拟机根据测试用例设置执行交易前相关以太坊账户的状态,随后执行该测试用例中的以太坊交易;收集所述以太坊虚拟机执行过程中覆盖的代码路径和用于比较的状态;步骤五:如果测试用例在执行时覆盖了新的代码路径,则将其添加到所述测试用例集合中;随后对所有以太坊虚拟机上收集到的状态进行比较,如果存在差异,则说明被测试虚拟机的实现存在问题,输出当前的测试用例,随后结束测试;否则返回步骤三。

全文数据:

权利要求:

百度查询: 浙江大学 一种以太坊虚拟机的模糊测试方法

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