[发明专利]一种智能合约漏洞挖掘方法及装置在审
| 申请号: | 202111243929.3 | 申请日: | 2021-10-26 |
| 公开(公告)号: | CN113688402A | 公开(公告)日: | 2021-11-23 |
| 发明(设计)人: | 汪德嘉;张齐齐;宋超 | 申请(专利权)人: | 江苏通付盾科技有限公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 北京弘权知识产权代理有限公司 11363 | 代理人: | 逯长明;许伟群 |
| 地址: | 215000 江苏省苏州市中国(江苏)自由贸易试*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 智能 合约 漏洞 挖掘 方法 装置 | ||
1.一种智能合约漏洞挖掘方法,其特征在于,所述方法包括:
获取已通过编译的智能合约源代码;
将所述已通过编译的智能合约源代码进行动态符号执行,得到动态符号执行结果;
获取与所述动态符号执行结果匹配的智能合约漏洞;
输出所述智能合约漏洞。
2.根据权利要求1所述的智能合约漏洞挖掘方法,其特征在于,所述获取已编译的智能合约源代码步骤之前,还包括:
获取输入的智能合约源代码;
将所述输入的智能合约源代码进行编译;所述编译用于判断所述输入的智能合约源代码中是否存在语法错误;
判断所述输入的智能合约源代码是否通过编译;
若所述输入的智能合约源代码通过编译,得到已通过编译的智能合约源代码。
3.根据权利要求2所述的智能合约漏洞挖掘方法,其特征在于,所述判断输入的智能合约源代码是否通过编译,包括:
若所述输入的智能合约源代码存在格式或语法错误,则所述输入的智能合约源代码未通过编译;
若所述输入的智能合约源代码不存在格式或语法错误,则所述输入的智能合约源代码通过编译。
4.根据权利要求2所述的智能合约漏洞挖掘方法,其特征在于,所述获取输入的智能合约源代码,至少包括以下任意一种方式:
获取直接输入的Solidity语言编译的源代码、获取上传的Solidity语言编译的源代码文件以及获取上传的Solidity语言编译的源代码文件的压缩包。
5.根据权利要求2所述的智能合约漏洞挖掘方法,其特征在于,所述将输入的智能合约源代码进行编译,至少包括以下任意一种方式:
solc编译、remix编译以及node.js编译。
6.一种智能合约漏洞挖掘装置,其特征在于,所述装置包括:
第一获取模块,所述第一获取模块用于获取已通过编译的智能合约源代码;
执行模块,所述执行模块用于将所述已通过编译的智能合约源代码进行动态符号执行,得到动态符号执行结果;
匹配模块,所述匹配模块用于获取与所述动态符号执行结果匹配的智能合约漏洞;
第一输出模块,所述第一输出模块用于输出所述智能合约漏洞。
7.根据权利要求6所述的智能合约漏洞挖掘装置,其特征在于,所述装置还包括:
第二获取模块,所述第二获取模块用于获取输入的智能合约源代码;
编译模块,所述编译模块用于将所述输入的智能合约源代码进行编译;所述编译用于判断所述输入的智能合约源代码中是否存在语法错误;
判断模块,所述判断模块用于判断所述输入的智能合约源代码是否通过编译;
第二输出模块,所述第二输出模块用于当所述输入的智能合约源代码通过编译时,输出已通过编译的智能合约源代码。
8.根据权利要求7所述的智能合约漏洞挖掘装置,其特征在于,所述判断模块,具体设置为:
若所述输入的智能合约源代码存在格式或语法错误,则所述输入的智能合约源代码未通过编译;
若所述输入的智能合约源代码不存在格式或语法错误,则所述输入的智能合约源代码通过编译。
9.根据权利要求7所述的智能合约漏洞挖掘装置,其特征在于,第二获取模块,具体设置为,至少执行以下任意一种获取方式:
获取直接输入的Solidity语言编译的源代码、获取上传的Solidity语言编译的源代码文件以及获取上传的Solidity语言编译的源代码文件的压缩包。
10.根据权利要求7所述的智能合约漏洞挖掘装置,其特征在于,所述编译模块,具体设置为,至少执行以下任意一种编译方式:
solc编译、remix编译以及node.js编译。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏通付盾科技有限公司,未经江苏通付盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111243929.3/1.html,转载请声明来源钻瓜专利网。





