摘要
本发明公开了基于状态变量参数化的智能合约模糊测试方法,该方法包括:预处理阶段,获取待测智能合约程序,采用静态分析工具编译,提取编译信息,基于深度优先算法生成状态变量信息;参数化阶段,基于遗传算法初始化种群并执行智能合约单轮测试,确认待参数化的状态变量集合,添加与状态变量同名且同类型的替身参数,生成与原智能合约对应的替身合约;模糊测试阶段,检查替身参数的否满足取值范围的约束,判断是否执行突变,在替身合约的模糊测试过程中,验证触发漏洞的种子中替身参数的取值。本发明利用状态变量的取值范围检查突变数据,保证数据可用性,通过在原合约上反推触发漏洞的状态变量取值,确保检测结果的可靠性。