CN108509958A - 缺陷类型检测方法、装置、电子设备及介质 - Google Patents
缺陷类型检测方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN108509958A CN108509958A CN201810276600.9A CN201810276600A CN108509958A CN 108509958 A CN108509958 A CN 108509958A CN 201810276600 A CN201810276600 A CN 201810276600A CN 108509958 A CN108509958 A CN 108509958A
- Authority
- CN
- China
- Prior art keywords
- detected
- target
- defect type
- color image
- convolutional neural
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供了一种缺陷类型检测方法、装置、电子设备及介质,该方法包括:获得待检测目标的字节码,其中,上述待检测目标为:基于预设编程语言所编写的程序;基于所获得的待检测目标的字节码,获得待检测目标对应的待检测色彩图像;基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定待检测目标是否存在缺陷,并在确定存在缺陷时,确定待检测目标对应的缺陷类型,其中,预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。以实现对待检测的程序是否存在缺陷的检测,进一步的,实现当待检测的程序存在缺陷时,对缺陷类型的检测。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种缺陷类型检测方法、装置、电子设备及介质。
背景技术
在一些情境中,将一些编写完成的程序部署到相应系统后,当上述编写完成的程序存在缺陷时,基于该部署上述编写完成的程序的系统进行相应操作时会存在安全隐患。例如,上述编写完成的程序为区块链上的智能合约,当将存在缺陷的智能合约部署在区块链后,基于部署该智能合约的区块链所产生的交易行为可能出现不可被修复的情况,例如:当交易发起方者基于上述部署该智能合约的区块链发起货币交易后,即使该货币交易的交易接收方是错误的,该货币交易也不能被撤回。上述情况,使得区块链中的交易存在安全隐患。可见,在部署一些编写完成的程序之前,对上述程序的正确性的分析至关重要,在一方面中,对上述程序的缺陷的检测,以及对所存在缺陷的类型的检测,在对智上述程序的正确性的分析过程中至关重要。
那么,如何在部署上述程序之前,确定程序是否存在缺陷,进而确定缺陷的类型成为亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种缺陷类型检测方法、装置、电子设备及介质,以解决如何在部署上述程序之前,确定程序是否存在缺陷,进而确定缺陷的类型的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种缺陷类型检测方法,所述方法包括:
获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
可选地,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
可选地,所述待检测目标的字节码为一串字符串;
所述基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像,包括:
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为所述待检测目标对应的待检测色彩图像。
可选地,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,所述方法还包括:
建立所述预设的卷积神经网络模型的过程,其中,所述过程包括:
获得初始的卷积神经网络模型;
获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
可选地,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型,包括:
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
可选地,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还包括:
基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
可选地,所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,包括:
将所述待检测色彩图像输入所述预设的卷积神经网络模型,所述预设的卷积神经网络模型提取所述待检测色彩图像的待检测图像特征;并基于所提取的所述待检测图像特征,确定所述待检测目标是否存在缺陷,并在确定所述待检测目标存在缺陷时,确定所述待检测目标对应的缺陷类型。
可选地,所述获得待检测目标的字节码,包括:
获得对所述待检测目标进行检测的检测指令,其中,所述检测指令包括所述待检测目标的字节码;
基于所获得的检测指令,得到所述待检测目标的字节码。
第二方面,本发明实施例提供了一种缺陷类型检测装置,所述装置包括:
第一获得模块,用于获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
第二获得模块,用于基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
确定模块,用于基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
可选地,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
可选地,所述待检测目标的字节码为一串字符串;
所述第二获得模块,具体用于
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为所述待检测目标对应的待检测色彩图像。
可选地,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
所述装置还包括:
模型建立模块,用于在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,建立所述预设的卷积神经网络模型,其中,所述模型建立模块包括:
第二获得单元,用于获得初始的卷积神经网络模型;
第三获得单元,用于获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
第四获得单元,用于基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
第五获得单元,用于获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
训练得到单元,用于基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
可选地,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述训练得到单元,具体用于
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
可选地,所述模型建立模块还包括:
检测单元,用于在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
第六获得单元,用于获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
调整单元,用于基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
可选地,所述确定模块,具体用于
将所述待检测色彩图像输入所述预设的卷积神经网络模型,所述预设的卷积神经网络模型提取所述待检测色彩图像的待检测图像特征;并基于所提取的所述待检测图像特征,确定所述待检测目标是否存在缺陷,并在确定所述待检测目标存在缺陷时,确定所述待检测目标对应的缺陷类型。
可选地,所述第一获得模块,具体用于
获得对所述待检测目标进行检测的检测指令,其中,所述检测指令包括所述待检测目标的字节码;
基于所获得的检测指令,得到所述待检测目标的字节码。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例所提供的上述任一所述的缺陷类型检测方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一所述的缺陷类型检测方法步骤。
第五方面,本发明实施例提供了一种计算机程序,其中,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一所述的缺陷类型检测方法步骤。
本发明实施例中,获得待检测目标的字节码,其中,上述待检测目标为:基于预设编程语言所编写的程序;基于所获得的待检测目标的字节码,获得待检测目标对应的待检测色彩图像;基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定待检测目标是否存在缺陷,并在确定存在缺陷时,确定待检测目标对应的缺陷类型,其中,预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测,以解决如何在部署上述程序之前,确定程序是否存在缺陷,进而确定缺陷的类型的问题。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种缺陷类型检测方法的流程示意图;
图2为本发明实施例所提供的建立预设的卷积神经网络模型的一种流程示意图;
图3为本发明实施例所提供的一种缺陷类型检测装置的结构示意图;
图4为本发明实施例所提供的模型建立模块的一种结构示意图;
图5为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种缺陷类型检测方法、装置、电子设备及介质,以解决如何在部署上述程序之前,确定程序是否存在缺陷,进而确定缺陷的类型的问题。
如图1所示,本发明实施例提供了一种缺陷类型检测方法,该方法包括:
S101:获得待检测目标的字节码;
其中,上述待检测目标为:基于预设编程语言所编写的程序;其中,上述预设编程语言可以为solidity语言以及Javascript语言等。
可以理解的是,本发明实施例所提供的缺陷类型检测方法,可以应用于任一电子设备中,上述电子设备可以为电脑以及智能手机等。实现本发明实施例所提供的缺陷类型检测方法的功能软件可以以专门的客户端软件的形式存在,也可以以客户端软件的插件的形式存在。
本发明实施例中,上述电子设备可以直接获得上述待检测目标的字节码(Bytecode),例如,在接收到特定指令后,即获得待检测目标的字节码。在一种情况中,上述电子设备可以为服务器,上述服务器可以接收用户通过客户端发送的关于待检测目标的检测指令,上述检测指令可以携带上述待检测目标的字节码;或者,上述检测指令可以携带上述待检测目标的标识,上述服务器获得上述待检测目标的标识,基于上述待检测目标的标识,获得待检测目标的字节码。
S102:基于所获得的待检测目标的字节码,获得待检测目标对应的待检测色彩图像;
在一种实现方式中,电子设备获得上述待检测目标的字节码之后,可以上述待检测目标的字节码,获得待检测目标对应的待检测色彩图像。在一种情况中,上述电子设备本地或与电子设备通信连接的存储设备中,存储有各目标的字节码与色彩图像的对应关系,电子设备可以基于上述对应关系以及上述待检测目标的字节码,获得待检测目标对应的待检测色彩图像。其中,上述目标为:基于预设编程语言所编写的程序。
S103:基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定待检测目标是否存在缺陷,并在确定存在缺陷时,确定待检测目标对应的缺陷类型。
其中,预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,上述预设的缺陷类型检测模型可以为:基于样本色彩图像以及机器学习算法训练所得的模型,其中,上述样本色彩图像为:基于样本目标的字节码所获得的图像,上述样本目标为:基于预设编程语言所编写的程序。其中,上述机器学习算法可以为卷积神经网络算法、深度学习算法以及支持向量机算法等等。
在一种实现方式中,训练得到上述预设的缺陷类型检测模型,需要首先获得多个样本数据,例如样本色彩图像,其中,每一样本色彩图像对应一样本目标的字节码;进而,获得每一样本色彩图像对应的标定信息,其中,上述标定信息包括所对应的样本色彩图像对应的预测缺陷类型,上述缺陷类型为:样本色彩图像对应的样本目标所包含的缺陷的类型。上述标定信息可以为模型建立人员手动标定的。
获得上述样本色彩图像以及每一样本色彩图像对应的预测缺陷类型之后,可以基于上述述样本色彩图像以及每一样本色彩图像对应的预测缺陷类型,对初始的缺陷类型检测模型进行训练。训练过程中,会不断调整上述初始的缺陷类型检测模型中的参数,直到初始的缺陷类型检测模型收敛后,获得训练所得的预设的缺陷类型检测模型,其中,该预设的缺陷类型检测模型包含每一缺陷类型与图像特征的对应关系。
在一种情况下,初始的缺陷类型检测模型收敛的标识,可以是:初始的缺陷类型检测模型收敛所输出的针对每一本色彩图像得到的当前检测结果,即当前缺陷类型,与所对应标定信息中包含的预测缺陷类型相同的概率,大于第一预定阈值;在另一种情况下,初始的缺陷类型检测模型收敛的标识,可以是:利用预设的损失函数,计算初始的缺陷类型检测模型所输出的针对每一本色彩图像得到的当前缺陷类型,与所对应标定信息中包含的预测缺陷类型之间的差值,该所计算的差值小于第二预定阈值。
后续的,电子设备基于上述预设的缺陷类型检测模型中所包含的每一缺陷类型与图像特征的对应关系,以及所获得的待检测色彩图像,得到检测结果,即确定得到待检测目标是否存在缺陷,并在确定存在缺陷时,确定得到待检测目标对应的缺陷类型。具体的,上述电子设备可以基于预设的缺陷类型检测模型,提取待检测色彩图像的图像特征,进而基于所提取的待检测色彩图像的图像特征,与上述预设的缺陷类型检测模型中所包含的每一缺陷类型与图像特征的对应关系,得到检测结果。
在一种实现方式中,上述缺陷可以表征待检测目标所存在的漏洞,上述缺陷类型为待检测目标所存在的漏洞的类型,在一种情况中,上述待检测目标可以为智能合约。
上述缺陷类型可以多种多样,包括但不限于:can be killed by arbitraryaddresses(无限期地锁定资金)、have no way to release Ether after a certainexecution state(不小心将智能合约泄漏给任意用户)、release Ether to arbitraryaddresses carelessly(可被任何地址终止)Transaction-Ordering Dependence(交易顺序依赖)、Timestamp Dependence(时间戳依赖)、Mishandled Exceptions(不当意外处理)以及TheDao hack(去中心化组织以太币盗窃)等。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测。
在一种实现方式中,预设编程语言可以包括solidity语言,待检测目标可以包括智能合约。其中,上述智能合约为基于上述solidity语言所编写的程序。
在一种实现方式中,获得待检测目标的字节码,可以包括:
获得对待检测目标进行检测的检测指令,其中,检测指令包括待检测目标的字节码;
基于所获得的检测指令,得到待检测目标的字节码。
在一种情况中,电子设备可以为服务器,当服务器获得用户通过客户端发送的对待检测目标进行检测的检测指令后,从上述检测指令中提取出该检测指令所携带的待检测目标的字节码,进而针对该待检测目标的字节码,执行后续的缺陷类型检测流程。
后续的,当服务器通过预设的缺陷类型检测模型和该待检测目标的字节码,确定出待检测目标的检测结果后,可以将所确定出的待检测目标的检测结果发送至上述客户端。上述客户端接收到上述检测结果后,可以继续展示上述检测结果,以供用户查看,用户可以基于上述检测结果进行后续的操作,例如,确定是否在以太坊的区块链上部署上述待检测目标。其中,上述检测结果包括:所检测出的上述待检测目标是否存在缺陷的结果,以及当在确定出上述待检测结果存在缺陷时,所确定的缺陷类型。
本发明实施例,在用户部署上述待检测目标之前,检测该待检测目标是否存在缺陷,并在确定该待检测目标存在缺陷时,确定出待检测目标所存在的缺陷的类型。可以避免出现将存在缺陷的待检测目标部署于以太坊的区块链上,在一定程度上,避免以太坊的区块链存在安全隐患。并且,本发明实施例确定出待检测目标所存在的缺陷的类型,更便于开发人员对待检测目标进行修改完善。
在一种实现方式中,该待检测目标的字节码为一串字符串;
基于所获得的待检测目标的字节码,获得待检测目标对应的待检测色彩图像的步骤,可以包括:
基于预设的RGB(RedGreenBlue,红绿蓝)颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码;
其中,预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将RGB颜色代码,转存为待检测目标对应的待检测色彩图像。
可以理解的是,上述待检测目标的字节码为十六进制的,且上述预设的RGB颜色对照表中的字符子串也为十六进制的,基于上述预设的RGB颜色对照表,可以直接将待检测目标的字节码转译为RGB颜色代码。
具体的,可以从字符串,即上述待检测目标的字节码的首字符开始,每六个字符作为一组字符子串,与预设的RGB颜色对照表进行匹配,将匹配成功的字符子串对应的RGB颜色代码。例如:上述待检测目标的字节码中的“606060”对应的RGB颜色代码为RGB(96,96,96),上述待检测目标的字节码中的“405260”对应的RGB颜色代码为RGB(64,82,96)等等。
后续的,电子设备可以确定RGB颜色代码各自对应的RGB颜色,进而基于所确定的RGB颜色代码各自对应的RGB颜色,得到待检测目标对应的待检测色彩图像。其中,为了提高检测效率,上述待检测色彩图像的尺寸可以为预设尺寸,该预设尺寸可以与样本色彩图像的尺寸相同,上述样本色彩图像为:训练得到上述预设的缺陷类型检测模型所利用的图像。
在一种实现方式中,上述预设的缺陷类型检测模型可以为预设的卷积神经网络模型;
在基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定待检测目标是否存在缺陷,并在确定存在缺陷时,确定待检测目标对应的缺陷类型之前,所述方法还可以包括:
建立预设的卷积神经网络模型的过程,其中,如图2所示,该过程可以包括:
S201:获得初始的卷积神经网络模型;
S202:获得多个样本目标的字节码;
其中,样本目标为:基于预设编程语言所编写的程序;
S203:基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
S204:获得每一样本色彩图像对应的标定信息;
其中,标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;该缺陷类型为:样本色彩图像对应的样本目标所包含的缺陷的类型。
S205:基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
可以理解的是,训练上述初始的卷积神经网络模型的样本色彩图像的数量越多,训练所得的预设的卷积神经网络模型越稳定,进一步的,利用上述预设的卷积神经网络模型,所确定出的待检测目标是否存在缺陷的结果,以及在确定存在缺陷时,所确定的缺陷类型越准确。
在一种情况中,在训练上述初始的卷积神经网络模型时,所获得的样本色彩图像的数量可能较少,例如低于一定预设阈值,此时,可以采用K-fold方式。利用所获得的样本色彩图像以及每一样本色彩图像对应的标定信息,训练上述初始的卷积神经网络模型,以得到初始的卷积神经网络模型。
另外,基于预设的卷积神经网络模型,确定待检测目标是否存在缺陷,以及在确定存在缺陷时,确定其缺陷类型,可以在一定程度上保证所确定上述结果的准确性,这是由于训练得到预设的卷积神经网络模型的样本色彩图像,为真实的样本目标对应的图像,其可以很好的表征样本目标的各种信息。
在本发明实施例中,上述预设编程语言可以为solidity语言以及Javascript语言等。上述样本目标可以为智能合约,此时,上述作为样本目标的智能合约可以为已部署于以太坊的区块链上的智能合约。此时,电子设备可以通过爬虫软件获得上述智能合约的地址,进而基于所获得的地址,通过以太坊API(Application Program Interface,应用程序接口)获取到上述智能合约对应的字节码。
上述卷积神经网络模型可以为:VGG16/19网络模型、Inception v3网络模型以及Resnet网络模型等。
在一种实现方式中,初始的卷积神经网络模型可以包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练初始的卷积神经网络模型,得到预设的卷积神经网络模型,可以包括:
将所获得的每一样本色彩图像输入特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含特征提取层和特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整特征提取层和特征分类层的参数,返回执行上述将所获得的每一样本色彩图像输入特征提取层,提取该样本色彩图像的样本图像特征的步骤;
直至匹配成功时,获得包含特征提取层和特征分类层的预设的卷积神经网络模型。
上述将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配的过程可以为,利用预设的损失函数计算获得的当前缺陷类型与所对应预测缺陷类型的差值,当所计算差值在预设允许损失范围内,则确定匹配成功,当所计算差值不在预设允许损失范围内,则确定匹配不成功,此时,可以基于将获得的当前缺陷类型与所对应预测缺陷类型的差值变小的原则,调整上述特征提取层和特征分类层的参数;再重新返回执行上述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征的步骤。在一种实现方式中,可以利用梯度下降法调整上述特征提取层和特征分类层的参数。
在一种实现方式中,在训练上述初始的卷积神经网络模型的过程中,可以将每一样本图像帧均输入上述初始的卷积神经网络模型,以对上述初始的卷积神经网络模型进行训练;也可以是首先从上述样本目标的字节码中,随机或顺序选取预定数量的样本目标的字节码,将所选取的预定数量的样本目标的字节码输入上述初始的卷积神经网络模型,以对上述初始的卷积神经网络模型进行训练,得到预设的卷积神经网络模型。
在一种实现方式中,为了获得更好的预设的卷积神经网络模型,在训练得到预设的卷积神经网络模型,可以对该预设的卷积神经网络模型进行优化。具体的,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还可以包括:
基于预设检测流程,检测预设的卷积神经网络模型确定结果的准确性,获得检测结果;
获得针对检测结果的调整指令,其中,调整指令携带所需调整结果;
基于所获得的调整结果,对预设的卷积神经网络模型进行调整。
其中,在得到预设的卷积神经网络模型后,电子设备可以继续将已知缺陷类型的目标对应的色彩图像,输入上述预设的卷积神经网络模型,得到输出结果,将上述输出结果与该色彩图像的已知缺陷类型进行匹配,基于匹配结果确定预设的卷积神经网络模型的确定结果的准确性,得到检测结果。当匹配率低于预设匹配阈值时,模型建立人员根据检测结果以及经验,确定相应的调整方案,并确定出调整结果,并触发携带调整结果的调整指令,电子设备获得该调整指令,其中,调整指令携带所调整的上述预设的卷积神经网络模型的参数,以及所需调整的各参数的调整结果,例如:参数可以包括学习率(learning rate)、批大小(batch size)、卷积层的层数以及优化函数等等,各参数的调整结果可以包括调整学习率至xx值,调整批大小至yy值,等等,其中,上述优化函数可以包括Relu(RectifiedLinear Units)激活函数。进而,电子设备可以继续训练调整后的预设的卷积神经网络模型。
在一种实现方式中,所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定待检测目标是否存在缺陷,并在确定存在缺陷时,确定待检测目标对应的缺陷类型的步骤,可以包括:
将待检测色彩图像输入预设的卷积神经网络模型,预设的卷积神经网络模型提取待检测色彩图像的待检测图像特征;并基于所提取的待检测图像特征,确定待检测目标是否存在缺陷,并在确定待检测目标存在缺陷时,确定待检测目标对应的缺陷类型。
在一种情况中,电子设备可以将待检测色彩图像输入预设的卷积神经网络模型的特征提取层,特征提取层可以基于提取待检测色彩图像的待检测图像特征,然后,将所提取待检测图像特征输入预设的卷积神经网络模型的特征分类层,特征分类层基于上述所提取待检测图像特征,确定该待检测目标是否存在缺陷,进而,在确定上述待检测目标存在缺陷时,确定待检测目标所存在缺陷的缺陷类型,并输出。
相应于上述方法实施例,本发明实施例提供了一种缺陷类型检测装置,如图3所示,所述装置包括:
第一获得模块310,用于获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
第二获得模块320,用于基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
确定模块330,用于基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测。
在一种实现方式中,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
在一种实现方式中,所述待检测目标的字节码为一串字符串;
所述第二获得模块320,具体用于
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为所述待检测目标对应的待检测色彩图像。
在一种实现方式中,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
如图4所示,所述装置还可以包括:
模型建立模块410,用于在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,建立所述预设的卷积神经网络模型的过程,其中,所述模型建立模块410包括:
第二获得单元411,用于获得初始的卷积神经网络模型;
第三获得单元412,用于获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
第四获得单元413,用于基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
第五获得单元414,用于获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
训练得到单元415,用于基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
在一种实现方式中,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述训练得到单元,具体用于
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
在一种实现方式中,所述模型建立模块还包括:
检测单元,用于在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
第六获得单元,用于获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
调整单元,用于基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
在一种实现方式中,所述确定模块430,具体用于
将所述待检测色彩图像输入所述预设的卷积神经网络模型,所述预设的卷积神经网络模型提取所述待检测色彩图像的待检测图像特征;并基于所提取的所述待检测图像特征,确定所述待检测目标是否存在缺陷,并在确定所述待检测目标存在缺陷时,确定所述待检测目标对应的缺陷类型。
在一种实现方式中,所述第一获得模块,具体用于
获得对所述待检测目标进行检测的检测指令,其中,所述检测指令包括所述待检测目标的字节码;
基于所获得的检测指令,得到所述待检测目标的字节码。
相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信,
存储器530,用于存放计算机程序;
处理器510,用于执行存储器530上所存放的计算机程序时,实现本发明实施例所提供的上述任一所述的缺陷类型检测方法,该缺陷类型检测方法包括:
获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测。
在一种实现方式中,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
在一种实现方式中,所述待检测目标的字节码为一串字符串;
所述基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像,包括:
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为待检测目标对应的待检测色彩图像。
在一种实现方式中,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,还包括:
建立所述预设的卷积神经网络模型的过程,其中,所述过程包括:
获得初始的卷积神经网络模型;
获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
在一种实现方式中,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型,包括:
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
在一种实现方式中,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还包括:
基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
在一种实现方式中,所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,包括:
将所述待检测色彩图像输入所述预设的卷积神经网络模型,所述预设的卷积神经网络模型提取所述待检测色彩图像的待检测图像特征;并基于所提取的所述待检测图像特征,确定所述待检测目标是否存在缺陷,并在确定所述待检测目标存在缺陷时,确定所述待检测目标对应的缺陷类型。
所述获得待检测目标的字节码,包括:
获得对所述待检测目标进行检测的检测指令,其中,所述检测指令包括所述待检测目标的字节码;
基于所获得的检测指令,得到所述待检测目标的字节码。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
相应于上述方法实施例,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一所述的缺陷类型检测方法,该缺陷类型检测方法包括:
获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测。
在一种实现方式中,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
在一种实现方式中,所述待检测目标的字节码为一串字符串;
所述基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像,包括:
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为待检测目标对应的待检测色彩图像。
在一种实现方式中,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,还包括:
建立所述预设的卷积神经网络模型的过程,其中,所述过程包括:
获得初始的卷积神经网络模型;
获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
在一种实现方式中,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型,包括:
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
在一种实现方式中,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还包括:
基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
相应于上述方法实施例,本发明实施例还提供了一种计算机程序,其中,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一所述的缺陷类型检测方法,该缺陷类型检测方法包括:
获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
本发明实施例中,基于所获得待检测目标的字节码,获得的待检测目标对应的待检测色彩图像,进而,基于待检测色彩图像以及预设的缺陷类型检测模型所包含的每一缺陷类型与图像特征的对应关系,可以确定出待检测目标是否存在缺陷,以及在确定待检测目标存在缺陷时,确定出待检测目标对应的缺陷类型,实现对待检测目标是否存在缺陷的检测,进一步的,实现当待检测目标存在缺陷时,对缺陷类型的检测。
在一种实现方式中,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
在一种实现方式中,所述待检测目标的字节码为一串字符串;
所述基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像,包括:
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为待检测目标对应的待检测色彩图像。
在一种实现方式中,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,还包括:
建立所述预设的卷积神经网络模型的过程,其中,所述过程包括:
获得初始的卷积神经网络模型;
获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
在一种实现方式中,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型,包括:
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
在一种实现方式中,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还包括:
基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种缺陷类型检测方法,其特征在于,所述方法包括:
获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述预设编程语言包括solidity语言,所述待检测目标包括智能合约。
3.根据权利要求1所述的方法,其特征在于,所述待检测目标的字节码为一串字符串;
所述基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像,包括:
基于预设的RGB颜色对照表,将所获得的待检测目标的字节码,转译为RGB颜色代码,其中,所述预设的RGB颜色对照表包括:各RGB颜色代码与字符子串的对应关系;
将所述RGB颜色代码,转存为所述待检测目标对应的待检测色彩图像。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述预设的缺陷类型检测模型为预设的卷积神经网络模型;
在所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型之前,所述方法还包括:
建立所述预设的卷积神经网络模型的过程,其中,所述过程包括:
获得初始的卷积神经网络模型;
获得多个样本目标的字节码,其中,所述样本目标为:基于所述预设编程语言所编写的程序;
基于每一样本目标的字节码,获得每一样本目标对应的样本色彩图像;
获得每一样本色彩图像对应的标定信息,其中,所述标定信息包括:所对应样本色彩图像对应的缺陷类型,作为预测缺陷类型;
基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型。
5.根据权利要求4所述的方法,其特征在于,所述初始的卷积神经网络模型包括特征提取层和特征分类层;
所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型,包括:
将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
将所提取的样本图像特征输入所述特征分类层,得到该样本色彩图像对应的当前缺陷类型;
将所获得的当前缺陷类型与所对应的预测缺陷类型进行匹配;
当匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型;
当匹配失败时,调整所述特征提取层和所述特征分类层的参数,返回执行所述将所获得的每一样本色彩图像输入所述特征提取层,提取该样本色彩图像的样本图像特征;
直至匹配成功时,获得包含所述特征提取层和所述特征分类层的预设的卷积神经网络模型。
6.根据权利要求4所述的方法,其特征在于,在所述基于所获得的每一样本色彩图像以及每一样本色彩图像对应的标定信息中所包括的预测缺陷类型,训练所述初始的卷积神经网络模型,得到预设的卷积神经网络模型之后,所述方法还包括:
基于预设检测流程,检测所述预设的卷积神经网络模型的确定结果的准确性,获得检测结果;
获得针对所述检测结果的调整指令,其中,所述调整指令携带所需调整结果;
基于所获得的调整结果,对所述预设的卷积神经网络模型进行调整。
7.根据权利要求4所述的方法,其特征在于,所述基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,包括:
将所述待检测色彩图像输入所述预设的卷积神经网络模型,所述预设的卷积神经网络模型提取所述待检测色彩图像的待检测图像特征;并基于所提取的所述待检测图像特征,确定所述待检测目标是否存在缺陷,并在确定所述待检测目标存在缺陷时,确定所述待检测目标对应的缺陷类型。
8.一种缺陷类型检测装置,其特征在于,所述装置包括:
第一获得模块,用于获得待检测目标的字节码,其中,所述待检测目标为:基于预设编程语言所编写的程序;
第二获得模块,用于基于所获得的待检测目标的字节码,获得所述待检测目标对应的待检测色彩图像;
确定模块,用于基于所获得的待检测色彩图像以及预设的缺陷类型检测模型,确定所述待检测目标是否存在缺陷,并在确定存在缺陷时,确定所述待检测目标对应的缺陷类型,其中,所述预设的缺陷类型检测模型:包含每一缺陷类型与图像特征的对应关系。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的计算机程序时,实现权利要求1-7任一所述的缺陷类型检测方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的缺陷类型检测方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810276600.9A CN108509958A (zh) | 2018-03-30 | 2018-03-30 | 缺陷类型检测方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810276600.9A CN108509958A (zh) | 2018-03-30 | 2018-03-30 | 缺陷类型检测方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108509958A true CN108509958A (zh) | 2018-09-07 |
Family
ID=63377880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810276600.9A Pending CN108509958A (zh) | 2018-03-30 | 2018-03-30 | 缺陷类型检测方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509958A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800175A (zh) * | 2019-02-20 | 2019-05-24 | 河海大学 | 一种基于代码插桩的以太坊智能合约重入漏洞检测方法 |
CN109919925A (zh) * | 2019-03-04 | 2019-06-21 | 联觉(深圳)科技有限公司 | 印刷电路板智能检测方法、系统、电子装置及存储介质 |
CN109949271A (zh) * | 2019-02-14 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种基于医学图像的检测方法、模型训练的方法及装置 |
CN109948345A (zh) * | 2019-03-20 | 2019-06-28 | 杭州拜思科技有限公司 | 一种智能合约漏洞检测的方法、系统 |
CN109977682A (zh) * | 2019-04-01 | 2019-07-05 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
CN110781823A (zh) * | 2019-10-25 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 录屏检测方法、装置、可读介质及电子设备 |
CN111310778A (zh) * | 2018-12-12 | 2020-06-19 | 横河电机株式会社 | 检测装置、检测方法以及记录检测程序的记录介质 |
CN111338692A (zh) * | 2018-12-18 | 2020-06-26 | 北京奇虎科技有限公司 | 基于漏洞代码的漏洞分类方法、装置及电子设备 |
CN111640096A (zh) * | 2020-05-25 | 2020-09-08 | 中国电子科技集团公司第十三研究所 | 电子产品外观的检测方法、装置及终端 |
CN112257075A (zh) * | 2020-11-11 | 2021-01-22 | 福建有度网络安全技术有限公司 | 内网环境下的系统漏洞检测方法、装置、设备及存储介质 |
CN112950560A (zh) * | 2021-02-20 | 2021-06-11 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 电子元器件缺陷检测方法、装置及系统 |
CN113792662A (zh) * | 2021-09-15 | 2021-12-14 | 北京市商汤科技开发有限公司 | 图像检测方法、装置、电子设备以及存储介质 |
CN116503412A (zh) * | 2023-06-29 | 2023-07-28 | 宁德时代新能源科技股份有限公司 | 外观缺陷检测方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919419A (zh) * | 2017-02-03 | 2017-07-04 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 区块链上的智能合约程序的更新方法及装置 |
CN107526625A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于字节码检查的Java智能合约安全检测方法 |
CN107665307A (zh) * | 2017-09-13 | 2018-02-06 | 北京金山安全软件有限公司 | 一种应用识别方法、装置、电子设备以及存储介质 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
US20180089436A1 (en) * | 2016-09-29 | 2018-03-29 | Intel Corporation | Methods And Apparatus To Facilitate Blockchain-based Boot Tracking |
-
2018
- 2018-03-30 CN CN201810276600.9A patent/CN108509958A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180089436A1 (en) * | 2016-09-29 | 2018-03-29 | Intel Corporation | Methods And Apparatus To Facilitate Blockchain-based Boot Tracking |
CN106919419A (zh) * | 2017-02-03 | 2017-07-04 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 区块链上的智能合约程序的更新方法及装置 |
CN107526625A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种基于字节码检查的Java智能合约安全检测方法 |
CN107665307A (zh) * | 2017-09-13 | 2018-02-06 | 北京金山安全软件有限公司 | 一种应用识别方法、装置、电子设备以及存储介质 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310778A (zh) * | 2018-12-12 | 2020-06-19 | 横河电机株式会社 | 检测装置、检测方法以及记录检测程序的记录介质 |
CN111338692A (zh) * | 2018-12-18 | 2020-06-26 | 北京奇虎科技有限公司 | 基于漏洞代码的漏洞分类方法、装置及电子设备 |
CN111338692B (zh) * | 2018-12-18 | 2024-04-16 | 北京奇虎科技有限公司 | 基于漏洞代码的漏洞分类方法、装置及电子设备 |
CN109949271B (zh) * | 2019-02-14 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种基于医学图像的检测方法、模型训练的方法及装置 |
CN109949271A (zh) * | 2019-02-14 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种基于医学图像的检测方法、模型训练的方法及装置 |
CN109800175A (zh) * | 2019-02-20 | 2019-05-24 | 河海大学 | 一种基于代码插桩的以太坊智能合约重入漏洞检测方法 |
CN109919925A (zh) * | 2019-03-04 | 2019-06-21 | 联觉(深圳)科技有限公司 | 印刷电路板智能检测方法、系统、电子装置及存储介质 |
CN109948345A (zh) * | 2019-03-20 | 2019-06-28 | 杭州拜思科技有限公司 | 一种智能合约漏洞检测的方法、系统 |
CN109977682A (zh) * | 2019-04-01 | 2019-07-05 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
CN109977682B (zh) * | 2019-04-01 | 2023-04-07 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
CN110781823A (zh) * | 2019-10-25 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 录屏检测方法、装置、可读介质及电子设备 |
CN110781823B (zh) * | 2019-10-25 | 2022-07-26 | 北京字节跳动网络技术有限公司 | 录屏检测方法、装置、可读介质及电子设备 |
CN111640096B (zh) * | 2020-05-25 | 2023-04-21 | 中国电子科技集团公司第十三研究所 | 电子产品外观的检测方法、装置及终端 |
CN111640096A (zh) * | 2020-05-25 | 2020-09-08 | 中国电子科技集团公司第十三研究所 | 电子产品外观的检测方法、装置及终端 |
CN112257075A (zh) * | 2020-11-11 | 2021-01-22 | 福建有度网络安全技术有限公司 | 内网环境下的系统漏洞检测方法、装置、设备及存储介质 |
CN112950560A (zh) * | 2021-02-20 | 2021-06-11 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 电子元器件缺陷检测方法、装置及系统 |
CN113792662A (zh) * | 2021-09-15 | 2021-12-14 | 北京市商汤科技开发有限公司 | 图像检测方法、装置、电子设备以及存储介质 |
CN113792662B (zh) * | 2021-09-15 | 2024-05-21 | 北京市商汤科技开发有限公司 | 图像检测方法、装置、电子设备以及存储介质 |
CN116503412A (zh) * | 2023-06-29 | 2023-07-28 | 宁德时代新能源科技股份有限公司 | 外观缺陷检测方法、装置、计算机设备和存储介质 |
CN116503412B (zh) * | 2023-06-29 | 2023-12-08 | 宁德时代新能源科技股份有限公司 | 外观缺陷检测方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509958A (zh) | 缺陷类型检测方法、装置、电子设备及介质 | |
CN107835496B (zh) | 一种垃圾短信的识别方法、装置和服务器 | |
CN110009027B (zh) | 图像的比对方法、装置、存储介质及电子装置 | |
CN106875007A (zh) | 用于语音欺骗检测的基于卷积长短期记忆端对端深度神经网络 | |
CN108520196A (zh) | 奢侈品辨别方法、电子装置及存储介质 | |
CN106327188B (zh) | 支付应用中银行卡的绑定方法及装置 | |
CN109657539A (zh) | 人脸颜值评价方法、装置、可读存储介质及电子设备 | |
WO2020228283A1 (zh) | 特征提取方法、装置及计算机可读存储介质 | |
CN109194689B (zh) | 异常行为识别方法、装置、服务器及存储介质 | |
CN107341399A (zh) | 评估代码文件安全性的方法及装置 | |
CN106415605A (zh) | 用于分布式光学字符识别和分布式机器语言翻译的技术 | |
CN110365691B (zh) | 基于深度学习的钓鱼网站判别方法及装置 | |
CN110457677A (zh) | 实体关系识别方法及装置、存储介质、计算机设备 | |
CN112819073B (zh) | 分类网络训练、图像分类方法、装置和电子设备 | |
CN109697449A (zh) | 一种目标检测方法、装置及电子设备 | |
CN106228133A (zh) | 用户验证方法及装置 | |
CN108154031A (zh) | 伪装应用程序的识别方法、装置、存储介质和电子装置 | |
TWI793418B (zh) | 圖像處理方法和系統 | |
CN115658955A (zh) | 跨媒体检索及模型训练方法、装置、设备、菜谱检索系统 | |
CN114639096B (zh) | 文本识别方法、装置、电子设备和存储介质 | |
CN114448664B (zh) | 钓鱼网页的识别方法、装置、计算机设备及存储介质 | |
CN113537248B (zh) | 图像识别方法和装置、电子设备和存储介质 | |
CN109101984A (zh) | 一种基于卷积神经网络的图像识别方法及装置 | |
CN107037028A (zh) | 一种云平台拉曼光谱识别方法及装置 | |
CN109800797A (zh) | 基于ai的文件黑白判断方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180907 |