[发明专利]一种智能合约模糊测试系统在审
申请号: | 202111558026.4 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114356755A | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 王荣;蔡维德 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 模糊 测试 系统 | ||
本发明开发了一种智能合约模糊测试系统,该系统包括:静态分析模块、模糊引擎模块、测试模块、虚拟机插桩模块。所述静态分析模块用于分析智能合约程序函数接口、参数、操作码等特征;所述模糊引擎模块用于产生输入目标测试对象的测试用例;所述测试模块作用在于将模糊引擎模块传过来的输入测试用例封装为交易,并发送到虚拟机插桩模块;虚拟机插桩模块用于记录每一次调用的交易详细信息,记录执行并追踪,将检测漏洞结果发给模糊引擎模块。
技术领域
本发明涉及针对区块链领域,特别是涉及一种智能合约模糊测试系统。
背景技术
智能合约是在区块链上运行的计算机代码,其中包含一组规则,在该规则下该智能合约的各方同意彼此进行交互。如果满足预定义规则,协议将自动执行。与传统程序不同,智能合约一旦部署,就不能被修改。随着智能合约承载更多的价值,智能合约遭受了花费数百万美元的漏洞。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供本发明针对目前技术发展的需求和不足之处,提供一种智能合约模糊测试系统,其特征在于:包含以下组成部分:
(1)静态分析模块,分析智能合约程序函数接口、参数、操作码等特征;
(2)模糊引擎模块,产生输入目标测试对象的测试用例;
(3)测试模块,将模糊引擎模块传过来的输入测试用例封装为交易,并发送到虚拟机插桩模块;
(4)虚拟机插桩模块,记录每一次调用的交易详细信息,记录执行并追踪,将检测漏洞结果发给模糊引擎模块。
具体的,所述组成部分(1)静态分析模块通过分析测试智能合约的接口以及字节码,提取函数的每一个参数的数据类型以及函数签名。所述组成部分(2)模糊引擎模块生成突变测试用例是按一定的策略进行变异,变异策略可以是遗传算法、生成对抗网络、模拟退火等方法。所述组成部分(3),测试模块是将测试用例以字符类型的动态数组存储在用户提交的签名交易中。所述组成部分(4),虚拟机插桩模块是通过对虚拟机插桩记录智能合约的运行时状态,虚拟机插桩模块记录每一次调用的交易详细信息,记录执行并追踪。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为本发明工作示意图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
下面将附图结合具体实施方式对本发明的技术加以详细说明。
本发明一种智能合约模糊测试系统,本实施例是以太坊智能合约平台为例子,本实施例将说明本发明的工作流程,包括:
S01、静态分析模块分析待测试的智能合约程序的应用程序二进制接口以及字节码,提取接口列表、接口名称、参数名称、参数类型、返回类型、操作码等特征,将分析到应用程序特征发送给模糊引擎模块;
S02、模糊引擎模块根据应用程序特征生成与应用程序二进制接口规范相符的合法模糊测试输入以及越过有效边界的突变输入,产生输入目标测试对象的测试用例;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111558026.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种抑菌口罩及其制备方法
- 下一篇:一种用于糖尿病患者注射装置