[发明专利]一种智能合约安全漏洞检测方法、装置、终端及存储介质有效
申请号: | 201810521464.5 | 申请日: | 2018-05-25 |
公开(公告)号: | CN108985066B | 公开(公告)日: | 2021-09-28 |
发明(设计)人: | 杨文玉 | 申请(专利权)人: | 北京金山安全软件有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06T7/45;G06K9/46;G06K9/62 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 安全漏洞 检测 方法 装置 终端 存储 介质 | ||
1.一种智能合约安全漏洞检测方法,其特征在于,包括:
步骤S101、根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为所述N为所述字节码文件S行代码中每一行代码中的函数变量各自对应的字节码长度的最大值;所述第一参数Ai包括所述函数名称Di对应的字节码,所述第二参数Bi包括所述函数变量Vi对应的字节码;所述i为大于等于1且小于等于S的正整数;
步骤S102、将所述灰度图矩阵变换为灰度图;
步骤S103、提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述字节码文件中是否存在安全漏洞。
2.根据权利要求1所述的方法,其特征在于,所述根据字节码文件构建灰度图矩阵之前,还包括:
将智能合约进行编码,生成所述字节码文件;其中,所述智能合约包括S行代码,所述S行代码中的第i行代码包括函数名称Di和函数变量Vi。
3.根据权利要求1所述的方法,其特征在于,所述将所述灰度图矩阵变换为灰度图包括:
将所述灰度图矩阵S行中的第i行按照的方式进行划分,得到个像素点单元;
将所述个像素点单元进行进制转换得到个像素点;
根据所述个像素点生成所述灰度图中的第i行,所述i的取值从1到S,其中,所述Q用于表征所述灰度图矩阵中每一行的长度,所述
4.根据权利要求1所述的方法,其特征在于,所述提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述智能合约中是否存在安全漏洞包括:
利用灰度共生矩阵GLCM提取所述灰度图的6维特征,并将所述6维特征输入所述预设的安全漏洞识别模型,以检测所述字节码文件中是否存在所述安全漏洞;其中,所述灰度共生矩阵用于表征所述灰度图中灰度的空间特性。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述M为16。
6.一种智能合约安全漏洞检测装置,其特征在于,包括:
构建单元,用于根据字节码文件构建灰度图矩阵;其中,所述字节码文件包括S行代码,所述S行代码中的第i行代码包括函数名称Di对应的字节码和函数变量Vi对应的字节码;所述灰度图矩阵的行数为S,所述灰度图矩阵S行中的第i行包括第一参数Ai和第二参数Bi;所述第一参数Ai的长度为M,所述M为8的整数倍,所述第二参数Bi的长度为所述N为所述字节码文件S行代码中每一行代码中的函数变量各自对应的字节码长度的最大值;所述第一参数Ai包括所述函数名称Di对应的字节码,所述第二参数Bi包括所述函数变量Vi对应的字节码;所述i为大于等于1且小于等于S的正整数;
变换单元,用于将所述灰度图矩阵变换为灰度图;
处理单元,用于提取所述灰度图的特征,并将所述灰度图的特征输入预设的安全漏洞识别模型,以检测所述字节码文件中是否存在安全漏洞。
7.根据权利要求6所述的智能合约安全漏洞检测装置,其特征在于,所述智能合约安全漏洞检测装置还包括:
编码单元,用于在所述构建单元根据字节码文件构建灰度图矩阵之前,将智能合约进行编码,生成所述字节码文件;其中,所述智能合约包括S行代码,所述S行代码中的第i行代码包括函数名称Di和函数变量Vi。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山安全软件有限公司,未经北京金山安全软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810521464.5/1.html,转载请声明来源钻瓜专利网。