恶意代码的检测方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 11:52:33
技术领域
本发明涉及安全威胁处理技术领域,尤其涉及一种恶意代码的检测方法、装置、计算机设备和存储介质。
背景技术
随着计算机网络技术的飞速发展,尤其是互联网的应用变得越来越广泛,在给人们生活带来便利的同时,计算机恶意程序对网络信息安全性的威胁也愈加巨大。这些恶意程序一旦发作就会对计算机系统造成破坏,轻则篡改文件、影响系统稳定、窃取信息,重则导致系统瘫痪,甚至破坏系统整体硬件部分,严重地会威胁到信息的安全,造成不可估计的损失。
在现有技术中,对未知的恶意程序的检测时,通常需要人工经验进行分析,但是,人工经验有一定的滞后性,往往覆盖不全,在进行恶意程序的检测时,应对未知威胁能力较差,使得对未知恶意程序的检出准确度并不高。
因此,提供一种恶意代码的检测方法、装置、计算机设备和存储介质,以提升对未知威胁的检出准确性成为本领域亟需解决的技术问题。
发明内容
本发明的目的是提供一种恶意代码的检测方法、装置、计算机设备和存储介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本发明提供了一种恶意代码的检测方法。
该恶意代码的检测方法包括:将待检测代码划分为多个代码段,其中,所述代码段与预设模板图像上的一个像素组相对应,所述像素组包括若干像素;获取所述代码段预定位置的字符;按照预设的映射规则确定所述字符对应的颜色值;按照所述字符对应的颜色值、所述字符所在代码段与所述像素组的对应关系为所述像素赋值,得到所述待检测代码对应的待检测图片;将所述待检测图片输入至预设的图片分类模型,其中,所述图片分类模型用于对恶意代码对应的图片和非恶意代码对应的图片进行分类;当所述图片分类模型输出表征所述待检测图片属于恶意代码对应图片的类别信息时,确定所述待检测代码为恶意代码。
进一步地,按照预设的映射规则确定字符对应的颜色值的步骤包括:确定字符对应的ASCII码类别;以及根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值。
进一步地,根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值的步骤包括:当字符大于0且对应的ASCII类别属于不可见ASCII码时,确定字符对应第一颜色;当字符对应的ASCII类别属于可见ASCII码时,确定字符对应第二颜色;当字符小于255且不属于ASCII码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
进一步地,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、黄色、蓝色、白色和黑色中的一种。
进一步地,像素组包括一个像素。
进一步地,在将待检测图片输入至预设的分类模型的步骤之前,恶意代码的检测方法还包括:获取模型训练代码样本集,其中,模型训练代码样本集包括多个代码样本,代码样本包括恶意样本和非恶意样本;将代码样本划分为多个训练代码段,其中,训练代码段与像素组相对应;获取训练代码段预定位置的训练字符;确定训练字符对应的颜色值;按照训练字符对应的颜色值、训练字符所在训练代码段与像素组的对应关系为像素赋值,得到代码样本对应的待训练图片;将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练,以得到图片分类模型。
进一步地,将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练的步骤包括:设置初始分类模型包括依次连接的M个卷积块,每个卷积块包括若干卷积层;利用由ImageNet数据集训练得到的预训练模型的参数来初始化初始分类模型的参数,得到中间分类模型;将待训练图片作为中间分类模型的输入,将代码样本对应的代码类别作为中间分类模型的输出,冻结中间分类模型中第1至第M-1个卷积块的参数,来对中间分类模型进行训练。
另一方面,为实现上述目的,本发明提供了一种特征码提取装置。
该特征码提取装置的包括:切分模块,用于将待检测代码划分为多个代码段,其中,代码段与预设模板图像上的一个像素组相对应,像素组包括若干像素;获取模块,用于获取代码段预定位置的字符;映射模块,用于按照预设的映射规则确定字符对应的颜色值;转换模块,用于按照字符对应的颜色值、字符所在代码段与像素组的对应关系为像素赋值,得到待检测代码对应的待检测图片;分类模块,用于将待检测图片输入至预设的图片分类模型,其中,图片分类模型用于对恶意代码对应的图片和非恶意代码对应的图片进行分类;确定模块,用于当图片分类模型输出表征待检测图片属于恶意代码对应图片的类别信息时,确定待检测代码为恶意代码。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的恶意代码的检测方法、装置、计算机设备和存储介质,对待检测代码进行分段,分为多个代码段,将每个代码段与预设模板图像中一个像素组对应,将每个代码段中预定位置的字符映射为颜色值,与像素组中像素的对应,按照上述对应关系为预设模板图像上的像素赋值后,也即将待检测代码转化为待检测图片,针对待检测图片,将其输入图片分类模型进行分类识别,通过对待检测图片的分类识别结果即可确定对待检测代码的分类识别结果,也即确定待检测代码是否为恶意代码,通过本发明,先将待检测代码转换为图片,然后通过对图片的处理来实现对待检测代码的检测,代码转换为图片的方式简单,减小了识别恶意代码的数据处理量,无需依靠人工经验分析待检测代码,能够实现对未知威胁的检测。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的恶意代码的检测方法的流程图;
图2为本发明实施例二提供的恶意代码的检测方法中样本下载流程图;
图3为本发明实施例二提供的恶意代码的检测方法中模型训练的流程图;
图4为本发明实施例二提供的恶意代码的检测方法中模型示意图;
图5为本发明实施例三提供的恶意代码的检测装置的框图;
图6为本发明实施例四提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提升对未知威胁的检出准确性,本发明提供了一种恶意代码的检测方法和装置,在本发明提供的恶意代码的检测方法中,将待检测代码划分为多个代码段,将每个代码段与预设模板图像上的一个像素组相对应,然后针对代码段预定位置的字符,按照预设的映射规则确定其对应的颜色值,从而能够按照字符对应的颜色值、字符所在代码段与像素组的对应关系为像素赋值,实现将待检测代码转换为待检测图片;针对该待检测图片,将其输入至预设的图片分类模型,而该图片分类模型能够对恶意代码对应的图片和非恶意代码对应的图片进行分类,当图片分类模型输出表征待检测图片属于恶意代码对应的图片时,即可确定待检测代码为恶意代码,因此,通过该图片分类模型对待检测图片进行分类,能够实现对待检测代码的识别。从中可以看出,在本发明提供的恶意代码的检测方法中,将待检测代码中的代码段与像素组对应,并将代码段的特征通过像素组的颜色体现,从而将对待检测代码的处理转换为对图片的处理,进而能够通过人工智能分类模型对图片的分类来确定待检测代码是否属于恶意代码,无需依靠人工经验分析待检测代码,能够实现对未知威胁的检测,同时,将待检测代码的处理转换为图片进行处理,还可以减小了识别恶意代码的数据处理量。
关于本发明提供的恶意代码的检测方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种恶意代码的检测方法,该检测方法可应用于样本识别场景,例如,对未知样本(也即待检测代码)通过该恶意代码检测方法进行检测,确定未知样本属于恶意代码或属于白样本,通过该方法,实现了恶意代码自动识别,无需依靠人工经验分析待检测代码,提升对未知威胁的检出准确性,具体地,图1为本发明实施例一提供的恶意代码的检测方法的流程图,如图1所示,该实施例提供的恶意代码的检测方法包括如下的步骤S101至步骤S106。
步骤S101:将待检测代码划分为多个代码段。
其中,代码段与预设模板图像上的一个像素组相对应,像素组包括若干像素。
具体地,预设模板图像,该模板图像可由M*N个像素构成,进一步,可对M*N个像素进行像素组的划分,例如,将m*n个像素作为一个像素组,其中,M、N、m和n均为正整数,且m小于或等于M,n小于或等于N。在一种情况下,可根据预设模板图像上像素组的数量,设置待检测代码中代码段的划分数量,例如,预设模板图像包括P个像素组,则在该步骤中将待检测代码划分为P个代码段,可选地,对待检测代码进行等分处理,使得各个代码段的长度相等;在另一种情况下,可根据待检测代码整体的长度以及代码段自身长度,来设置合适的代码段数量,然后基于代码段的数量对M*N个像素进行像素组的划分。无论哪种情况,在该步骤中,将待检测代码划分为多个代码段后,每个代码段在预设模板图像上唯一对应一个像素组,且像素组的排列顺序对应代码段的先后顺序,进一步,预设模板图像上的所有像素组均对应至代码段,使得后续形成的待检测图片上的每个像素组均表征代码段,避免待检测图片上出现无效像素组。
步骤S102:获取代码段预定位置的字符。
具体地,可在适当位置获取具有特定意义的字符,或者,可直接获取代码段的首字符或尾字符等,总之,在该步骤S102中,在每个代码段的预定位置获取至少一个字符。
步骤S103:按照预设的映射规则确定字符对应的颜色值。
具体地,设置字符与颜色的对应关系,也即映射规则,基于该映射规则,能够将一个确定的字符映射为一种颜色值,从而将代码段的特征映射为图片的特征。其中,可基于字符的值、字符在字符集中的位置等字符特征,建立字符与颜色值之间的映射规则。
步骤S104:按照字符对应的颜色值、字符所在代码段与像素组的对应关系为像素赋值,得到待检测代码对应的待检测图片。
具体地,在对预设模板图像上的像素进行赋值时,同一像素组的不同像素的颜色值相同,由像素组和代码段的对应关系,确定像素组对应的代码段,然后将该像素组中像素的颜色设置为该代码段中预定位置的字符所对应的颜色值,实现对像素的赋值,将每个代码段中预定位置的字符所对应的颜色值均赋值给像素后,也即将待检测代码转换为待检测图片。
步骤S105:将待检测图片输入至预设的图片分类模型。
其中,图片分类模型用于对恶意代码对应的图片和非恶意代码对应的图片进行分类。
将待检测代码转换为待检测图片后,即可采用现有技术中对图片的识别处理方法进行处理。预设图片分类模型,该图片分类模型由包括恶意代码对应的图片和非恶意代码对应的图片的样本集进行训练得到,使得该图片分类模型能够实现对恶意代码对应的图片和非恶意代码对应的图片进行分类。
具体地,图片分类模型可包括输入层、卷积层和输出层,其中,输入层用于接收待检测图片,卷积层用于提取待检测图片的特征,输出层用于输出待检测代码对应的类别,也即属于恶意代码对应的图片还是非恶意代码对应的图片。
步骤S106:当图片分类模型输出表征待检测图片属于恶意代码对应图片的类别信息时,确定待检测代码为恶意代码。
将待检测图片输入图片分类模型后,图片分类模型可输出表征待检测图片属于恶意代码对应图片的类别信息,或输出表征待检测图片属于非恶意代码对图片的类别信息,其中,当输出表征待检测图片属于恶意代码对应图片的类别信息,即可确定待检测代码为恶意代码,当输出表征待检测图片属于非恶意代码对应图片的类别信息,即可确定待检测代码为非恶意代码。
在该实施例提供的恶意代码的检测方法中,对待检测代码进行分段,分为多个代码段,将每个代码段与预设模板图像中一个像素组对应,将每个代码段中预定位置的字符映射为颜色值,与像素组中像素的对应,按照上述对应关系为预设模板图像上的像素赋值后,也即将待检测代码转化为待检测图片,针对待检测图片,将其输入图片分类模型进行分类识别,通过对待检测图片的分类识别结果即可确定对待检测代码的分类识别结果,也即确定待检测代码是否为恶意代码,采用该实施例提供的恶意代码的检测方法,先将待检测代码转换为图片,然后通过对图片的处理来实现对待检测代码的检测,代码转换为图片的方式简单,减小了识别恶意代码的数据处理量,无需依靠人工经验分析待检测代码,能够实现对未知威胁的检测。
可选地,在一种实施例中,按照预设的映射规则确定字符对应的颜色值的步骤包括:确定字符对应的ASCII码类别;以及根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值。
具体地,待检测代码由控制字符、标点符号、图形符号、各国家文字和数字等字符组成,在计算机中通常是一个二进制数字序列,一个字符对应二进制数字序列中的一个数字单元,也即8位二进制数,在该实施例中,可直接获取待检测代码的8位二进制数作为ASCII码,在预先将ASCII码划分为多个类别,设定不同类别对应不同的颜色之后,通过字符对应的8位二进制数即可在ASCII码表中确定对应的ASCII码,此ASCII码所在的类别即为字符对应的ASCII码类别,该ASCII码类别对应的颜色即为字符对应的颜色值,确定了字符对应的颜色值。
ASCII码本身是对字符的编码,ASCII码类别也即反映字符的类别,采用该实施例提供的恶意代码的检测方法,可直接将待检测代码的8位二进制数作为ASCII码,不同ASCII码类别对应不同的颜色,映射关系简单,无需对待检测代码进行处理,减少数据处理量,同时待检测图片上的颜色又可表征待检测代码中字符的类别,保证图片对待检测代码特征的体现,进而能够在通过对图片的识别处理来实现对待检测代码的识别,提升恶意代码检测的准确性。
可选地,在一种实施例中,根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值的步骤包括:当字符大于0且对应的ASCII类别属于不可见ASCII码时,确定字符对应第一颜色;当字符对应的ASCII类别属于可见ASCII码时,确定字符对应第二颜色;当字符小于255且不属于ASCII码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
具体地,8位二进制数换算为十进制后的最小值为0,最大值为255,也就是说字符大于等于0且小于等于255,在该范围内,对应的ASCII类别为3个类别:大于0的不可见ASCII码、可见ASCII码和小于255的非ASCII码,对于两个端点,也即等于0和等于255的情况,分别单独设置为一个类别,对应第一颜色至第五颜色共五种颜色。其中,不可见ASCII码包括的是控制字符,这类型字符在非DOS模式下不进行显示,在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号;可见ASCII码包括的是可显示的字符;非ASCII码是指ASCII码之外的字符;等于0的字符和等于255的字符分别对应的是不同的无字符填充内容。
在恶意代码中,关于不可见ASCII码、可见ASCII码、小于255的非ASCII码以及填充内容等,与正常代码具有不同的特征,因此,采用该实施例提供的恶意代码的检测方法,将上述五个类别的字符分别设置为不同的颜色,能够在待检测图片中体现出待检测代码关于上述各个类别的特征,进一步提升恶意代码检测的准确性。
可选地,在一种实施例中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、黄色、蓝色、白色和黑色中的一种。
采用该实施例提供的恶意代码的检测方法,待检测图片的颜色包括红色、黄色、蓝色、白色和黑色,不同颜色之间的色值差别大,提升图片分类的准确性,也即提升恶意代码检测的准确性。
可选地,在一种实施例中,像素组包括一个像素。能够减少向图片分类模型中输入的数据量,从而降低图片分类模型的复杂性,提升恶意代码的检测效率。
可选地,在一种实施例中,在将待检测图片输入至预设的分类模型的步骤之前,恶意代码的检测方法还包括:获取模型训练代码样本集,其中,模型训练代码样本集包括多个代码样本,代码样本包括恶意样本和非恶意样本;将代码样本划分为多个训练代码段,其中,训练代码段与像素组相对应;获取训练代码段预定位置的训练字符;确定训练字符对应的颜色值;按照训练字符对应的颜色值、训练字符所在训练代码段与像素组的对应关系为像素赋值,得到代码样本对应的待训练图片;将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练,以得到图片分类模型。
在该实施例提供的恶意代码的检测方法中,获取已知的恶意样本和非恶意样本,分别进行处理形成训练图片,对初始分类模型进行训练,形成可用于对待检测图片进行分类的图片分类模型。
可选地,在一种实施例中,将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练的步骤包括:设置初始分类模型包括依次连接的M个卷积块,每个卷积块包括若干卷积层;利用由ImageNet数据集训练得到的预训练模型的参数来初始化初始分类模型的参数,得到中间分类模型;将待训练图片作为中间分类模型的输入,将代码样本对应的代码类别作为中间分类模型的输出,冻结中间分类模型中第1至第M-1个卷积块的参数,来对中间分类模型进行训练。
在该实施例提供的恶意代码的检测方法中,在通过训练初始分类模型得到最终的图片分类模型时,先使用由ImageNet数据集训练得到的预训练模型,对初始分类模型的参数进行初始化,参数被初始化后的初始分类模型定义为中间分类模型,再采用微调的训练方法,冻结中间分类模型的前一部分卷积块的参数,利用待训练图片对中间分类模型进行训练,提升模型训练的准确率。
实施例二
在上述实施例一的基础上,本发明实施例二提供了一种优选的恶意代码的检测方法,该检测方法可应用于对未知样本的检测,在获取到未知样本(也即待检测代码)时,可先与特征码库中的恶意样本的特征码进行比对,当未知样本与特征码库中的某一特征码相匹配时,表明该未知样本属于此特征码对应的威胁类别;当未知样本与特征码库中的任一特征码均不匹配时,采用下述步骤对未知样本进行识别。
1)首先将未知样本的代码原文件切分为n段,得到n个代码段,每一代码段都表示一个像素点。
2)随后取每一代码段的首字符,并以这个首字符的值来表明对应像素点的颜色,具体的映射关系如下表1所示。
表1字符和颜色对应关系表
3)利用首字符对应的色彩,为其所在代码段对应的像素填上色彩。
采用上述三个步骤,可将未知样本的代码源文件转换为图片,得到图片后,即可采用已训练好的图片分类模型进行分类识别。
其中,上述图片分类模型的训练过程主要包括样本的采样和下载、样本的预处理、模型的训练和模型效果验证,具体可描述如下:
样本的采样:在实施例中,可对每天所产生的恶意样本数据和非恶意样本数据进行采集,为了更好的展现新样本的特点,采用对新旧数据的不平衡采样方法,即对新样本进行采样的比例较大,这样使得新样本的特点在样本数据集中体现的更加明显,从而使得训练出来的模型能够对新出现的样本具有更好的分类效果。采样数据的格式如下表2所示。
表2采样数据格式
样本的下载:如图2所示,首先,自动的从采样的MD5中逐条获取样本的MD5,每条MD5标识唯一对应样本文件。随后对云端的该文件进行下载请求,若请求成功则进入下一步操作,若重复请求失败则将该文件丢弃。下载到的样本文件保存后,通过云端反馈的下载标识,来验证文件是否成功下载,若成功下载则将下载的文件入样本库,否则删除文件进行重新下载,该步骤利用多次请求和验证的方法,降低了下载错误的可能性,保障了样本数据集的质量。
样本的预处理:如图3所示,将上述样本库中下载到的二进制的样本文件按照上述的步骤1)至步骤3)相同的处理方法,将样本处理为图片,这样不仅可以减小数据集的大小以方便存储,还可以利用图像处理的方法来训练分类模型。将预处理后的图片形成预处理文件库,对预处理文件库进行数据集的切分,得到训练集和验证集。
模型的训练:针对训练集中的图片,使用迁移学习的方法训练模型,也即将已学训练好的模型参数迁移到新的模型来帮助新模型训练,考虑到大部分图像数据或任务是存在相关性的,所以通过迁移学习可以将模型已经学到的知识,通过某种方式来分享给新模型,从而加快并优化模型的学习效率。如图4所示,该实施例采用的是vgg16的模型,预训练的数据是来自于ImageNet,利用预先从ImageNet数据集中学习到的知识,加上通过微调方法从训练数据集图片中得到恶意代码和正常代码的知识,可以很好的区分恶意代码和正常代码。由于模型在微调时只需要使用浅层的知识,因此将和卷积块1至卷积块4的参数进行冻结,而卷积块5和全连接层的参数随着模型训练不断变化。在参数微调的过程中,为了防止参数改变过大而导致训练不收敛,将训练的学习率设置为一个较小的值,大小为0.0001。
模型的验证:在模型训练完毕后,使用验证集张工的图片对图片分类模型的分类效果进行验证,若准确率大于99%,则证明该图片分类模型可用于恶意代码的检测。
实施例三
对应于上述实施例一,本发明实施例三提供了一种恶意代码的检测装置,相关技术特征和对应的技术效果可参考上述实施例一和实施例二,在该处不再赘述。图5为本发明实施例三提供的恶意代码的检测装置的框图,如图5所示,该装置包括:切分模块301、获取模块302、映射模块303、转换模块304和分类模块305。
其中,切分模块301用于将待检测代码划分为多个代码段,其中,代码段与预设模板图像上的一个像素组相对应,像素组包括若干像素;获取模块302用于获取代码段预定位置的字符;映射模块303用于按照预设的映射规则确定字符对应的颜色值;转换模块304用于按照字符对应的颜色值、字符所在代码段与像素组的对应关系为像素赋值,得到待检测代码对应的待检测图片;分类模块305用于将待检测图片输入至预设的图片分类模型,其中,图片分类模型用于对恶意代码对应的图片和非恶意代码对应的图片进行分类;确定模块306用于当图片分类模型输出表征待检测图片属于恶意代码对应图片的类别信息时,确定待检测代码为恶意代码。
进一步地,映射模块303包括第一确定单元和第二确定单元,第一确定单元用于确定字符对应的ASCII码类别;第二确定单元用于根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值。
进一步地,第二确定单元在根据字符对应的ASCII类别、预设的ASCII码类别与颜色的对应关系,确定字符对应的颜色值时,具体执行的步骤包括:当字符大于0且对应的ASCII类别属于不可见ASCII码时,确定字符对应第一颜色;当字符对应的ASCII类别属于可见ASCII码时,确定字符对应第二颜色;当字符小于255且不属于ASCII码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
进一步地,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、黄色、蓝色、白色和黑色中的一种。
进一步地,像素组包括一个像素。
进一步地,恶意代码的检测装置还包括训练模块,用于在分类模块305将待检测图片输入至预设的分类模型之前,训练模块用于执行以下步骤:获取模型训练代码样本集,其中,模型训练代码样本集包括多个代码样本,代码样本包括恶意样本和非恶意样本;将代码样本划分为多个训练代码段,其中,训练代码段与像素组相对应;获取训练代码段预定位置的训练字符;确定训练字符对应的颜色值;按照训练字符对应的颜色值、训练字符所在训练代码段与像素组的对应关系为像素赋值,得到代码样本对应的待训练图片;将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练,以得到图片分类模型。
进一步地,在训练模块将待训练图片作为初始分类模型的输入,将代码样对应的代码类别作为初始分类模型的输出,对初始分类模型进行训练时,具体执行的步骤包括:设置初始分类模型包括依次连接的M个卷积块,每个卷积块包括若干卷积层;利用由ImageNet数据集训练得到的预训练模型的参数来初始化初始分类模型的参数,得到中间分类模型;将待训练图片作为中间分类模型的输入,将代码样本对应的代码类别作为中间分类模型的输出,冻结中间分类模型中第1至第M-1个卷积块的参数,来对中间分类模型进行训练。
实施例四
本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的恶意代码的检测装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如恶意代码的检测方法等。
实施例五
本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储恶意代码的检测装置,被处理器执行时实现实施例一的恶意代码的检测方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 恶意代码检测方法、装置、计算机设备及存储介质
- 恶意代码检测方法、装置、设备及计算机可读存储介质