一种恶意软件的检测方法及系统转让专利

申请号 : CN201810670997.X

文献号 : CN108985055B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李丹史闻博赵立超赵海杉郑光聪

申请人 : 东北大学秦皇岛分校

摘要 :

本发明公开了一种恶意软件的检测方法及系统。该方法包括:获取训练样本,训练样本为已知类型的软件的执行程序;对训练样本反编译和编号处理,得到训练样本处理后的源代码;采用粒子群算法为处理后的源代码中的各代码分配权重;以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;判断卷积神经网络的准确度是否达到设定值;如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;如果否,则继续采用粒子群算法调整各代码的权重,训练卷积神经网络。本发明提供的恶意软件的检测方法及系统具有检测准确度高的特点。

权利要求 :

1.一种恶意软件的检测方法,其特征在于,所述方法包括:获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;

对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;

采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;

以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;

判断所述卷积神经网络的准确度是否达到设定值;

如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;

如果否,则继续采用粒子群算法调整各代码的权重,训练卷积神经网络;

所述采用粒子群算法为所述源代码中的各代码分配权重,得到加权后的源代码,具体包括:将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;

采用粒子群算法对每个特征计算出一个权重;

将每个特征与对应的权重相乘;

所述采用粒子群算法调整所述源代码中的各代码的权重,具体包括:根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;

将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。

2.根据权利要求1所述的恶意软件的检测方法,其特征在于,所述以加权后的源代码为输入矩阵,训练卷积神经网络,具体包括:设置卷积神经网络的内层参数top K,K=3;

以加权后的源代码为输入矩阵,训练卷积神经网络。

3.根据权利要求1所述的恶意软件的检测方法,其特征在于,所述对所述训练样本反编译和编号处理,具体包括:采用反编译软件对所述训练样本进行反编译;

将反编译得到的源代码根据Dalvik代码表进行编号处理。

4.一种恶意软件的检测系统,其特征在于,所述系统包括:训练样本获取模块,用于获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;

训练样本处理模块,用于对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;

权重计算模块,用于采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;

卷积神经网络训练模块,用于以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;

准确度判断模块,用于判断所述卷积神经网络的准确度是否达到设定值;

检测模块,用于在所述卷积神经网络输出的准确度达到设定值时,停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;

权重调整模块,用于在所述卷积神经网络输出的准确度没有达到设定值时,继续采用粒子群算法调整所述源代码中的各代码的权重,训练卷积神经网络;

所述权重计算模块具体包括:

初始特征矩阵确定单元,用于将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;

权重计算单元,用于采用粒子群算法对每个特征计算出一个权重;

加权单元,用于将每个特征与对应的权重相乘;

所述权重调整模块具体包括:

权重调整单元,用于根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;

调整特征矩阵确定单元,用于将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。

5.根据权利要求4所述的恶意软件的检测系统,其特征在于,所述卷积神经网络训练模块具体包括:参数设置单元,用于设置卷积神经网络的内层参数top K,K=3;

训练单元,用于以加权后的源代码为输入矩阵,训练卷积神经网络。

6.根据权利要求4所述的恶意软件的检测系统,其特征在于,所述反编译模块具体包括:反编译单元,用于采用反编译软件对所述训练样本进行反编译;

编号处理单元,用于将反编译得到的源代码根据Dalvik代码表进行编号处理。

说明书 :

一种恶意软件的检测方法及系统

技术领域

[0001] 本发明涉及恶意软件检测领域,特别是涉及一种恶意软件的检测方法及系统。

背景技术

[0002] 随着科学技术的发展,恶意软件的种类以及复杂度越来越高,对恶意软件的识别也越来越具有难度,目前,现有技术中通常采用卷积神经网络来对操作码进行分析处理,以达到识别恶意软件的目的,但是,识别准确度不太理想。

发明内容

[0003] 本发明的目的是提供一种恶意软件的检测方法及系统,具有检测准确度高的特点。
[0004] 为实现上述目的,本发明提供了如下方案:
[0005] 一种恶意软件的检测方法,所述方法包括:
[0006] 获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;
[0007] 对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;
[0008] 采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;
[0009] 以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;
[0010] 判断所述卷积神经网络的准确度是否达到设定值;
[0011] 如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;
[0012] 如果否,则继续采用粒子群算法调整各代码的权重,训练卷积神经网络。
[0013] 可选的,所述采用粒子群算法为所述源代码中的各代码分配权重,得到加权后的源代码,具体包括:
[0014] 将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;
[0015] 采用粒子群算法对每个特征计算出一个权重;
[0016] 将每个特征与对应的权重相乘。
[0017] 可选的,所述以加权后的源代码为输入矩阵,训练卷积神经网络,具体包括:
[0018] 设置卷积神经网络的内层参数top K,K=3;
[0019] 以加权后的源代码为输入矩阵,训练卷积神经网络。
[0020] 可选的,所述采用粒子群算法调整所述源代码中的各代码的权重,具体包括:
[0021] 根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;
[0022] 将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。
[0023] 可选的,所述对所述训练样本反编译和编号处理,具体包括:
[0024] 采用反编译软件对所述训练样本进行反编译;
[0025] 将反编译得到的源代码根据Dalvik代码表进行编号处理。
[0026] 本发明还提供了一种恶意软件的检测系统,所述系统包括:
[0027] 训练样本获取模块,用于获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;
[0028] 训练样本处理模块,用于对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;
[0029] 权重计算模块,用于采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;
[0030] 卷积神经网络训练模块,用于以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;
[0031] 准确度判断模块,用于判断所述卷积神经网络的准确度是否达到设定值;
[0032] 检测模块,用于在所述卷积神经网络输出的准确度达到设定值时,停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;
[0033] 权重调整模块,用于在所述卷积神经网络输出的准确度没有达到设定值时,继续采用粒子群算法调整所述源代码中的各代码的权重,训练卷积神经网络。
[0034] 可选的,所述权重计算模块具体包括:
[0035] 初始特征矩阵确定单元,用于将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;
[0036] 权重计算单元,用于采用粒子群算法对每个特征计算出一个权重;
[0037] 加权单元,用于将每个特征与对应的权重相乘。
[0038] 可选的,所述卷积神经网络训练模块具体包括:
[0039] 参数设置单元,用于设置卷积神经网络的内层参数top K,K=3;
[0040] 训练单元,用于以加权后的源代码为输入矩阵,训练卷积神经网络。
[0041] 可选的,所述权重调整模块具体包括:
[0042] 权重调整单元,用于根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;
[0043] 调整特征矩阵确定单元,用于将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。
[0044] 可选的,所述反编译模块具体包括:
[0045] 反编译单元,用于采用反编译软件对所述训练样本进行反编译;
[0046] 编号处理单元,用于将反编译得到的源代码根据Dalvik代码表进行编号处理。
[0047] 根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的恶意软件的检测方法及系统,将卷积神经网络和惯性权重粒子群算法相结合,采用惯性权重粒子群算法对卷积神经网络的训练样本吧编号处理后的源代码分配权重,并根据卷积神经网络的准确度,采用惯性权重粒子群算法对权重进行调节,直至训练的卷积神经网络的准确度达到要求,这使得本发明所提供的恶意软件的检测方法及系统具有检测准确度高的特点。

附图说明

[0048] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1为本发明实施例恶意软件的检测方法流程图;
[0050] 图2为本发明实施例恶意软件的检测系统结构图。

具体实施方式

[0051] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052] 本发明的目的是提供一种恶意软件的检测方法及系统,具有检测准确度高的特点。
[0053] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0054] 图1为本发明实施例恶意软件的检测方法流程图,如图1所示,本发明提供的恶意软件的检测方法步骤如下:
[0055] 步骤101:获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;
[0056] 步骤102:对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;
[0057] 步骤103:采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;
[0058] 步骤104:以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;
[0059] 步骤105:判断所述卷积神经网络的准确度是否达到设定值;其中,卷积神经网络的准确度的设定值可以选择90%以上的某一值。
[0060] 步骤106:当所述卷积神经网络的准确度达到设定值时,停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;
[0061] 步骤107:当所述卷积神经网络的准确度没有达到设定值时,继续采用粒子群算法调整各代码的权重,训练卷积神经网络。
[0062] 其中,步骤102具体包括:
[0063] 采用反编译软件对所述训练样本进行反编译;
[0064] 将反编译得到的源代码根据Dalvik代码表进行编号处理。
[0065] 步骤103具体包括:
[0066] 将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;
[0067] 采用粒子群算法对每个特征计算出一个权重;
[0068] 将每个特征与对应的权重相乘。
[0069] 步骤104具体包括:
[0070] 设置卷积神经网络的内层参数top K,K=3;
[0071] 以加权后的源代码为输入矩阵,训练卷积神经网络。
[0072] 所述采用粒子群算法调整所述源代码中的各代码的权重,具体包括:
[0073] 根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;
[0074] 将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。
[0075] 本发明提供的恶意软件的检测方法,将卷积神经网络和惯性权重粒子群算法相结合,采用惯性权重粒子群算法对卷积神经网络的训练样本吧编号处理后的源代码分配权重,并根据卷积神经网络的准确度,采用惯性权重粒子群算法对权重进行调节,直至训练的卷积神经网络的准确度达到要求,这使得本发明所提供的恶意软件的检测方法及系统具有检测准确度高的特点。
[0076] 图2为本发明实施例恶意软件的检测系统结构图,如图2所示,本发明还提供了一种恶意软件的检测系统,所述系统包括:
[0077] 训练样本获取模块201,用于获取训练样本,所述训练样本为已知类型的软件的执行程序,所述类型包括良性和恶意;
[0078] 训练样本处理模块202,用于对所述训练样本反编译和编号处理,得到所述训练样本处理后的源代码;
[0079] 权重计算模块203,用于采用粒子群算法为处理后的所述源代码中的各代码分配权重,得到加权后的源代码;
[0080] 卷积神经网络训练模块204,用于以加权后的源代码为输入矩阵,训练卷积神经网络,且在训练过程中,采用粒子群算法调整各代码的权重,得到输出为准确度的卷积神经网络;
[0081] 准确度判断模块205,用于判断所述卷积神经网络的准确度是否达到设定值;
[0082] 检测模块206,用于在所述卷积神经网络输出的准确度达到设定值时,停止训练卷积神经网络,采用训练好的卷积神经网络对待检测软件进行检测;
[0083] 权重调整模块207,用于在所述卷积神经网络输出的准确度没有达到设定值时,继续采用粒子群算法调整所述源代码中的各代码的权重,训练卷积神经网络。
[0084] 其中,所述反编译模块202具体包括:
[0085] 反编译单元,用于采用反编译软件对所述训练样本进行反编译;
[0086] 编号处理单元,用于将反编译得到的源代码根据Dalvik代码表进行编号处理。
[0087] 所述权重计算模块203具体包括:
[0088] 初始特征矩阵确定单元,用于将所述源代码排成一个n*1的矩阵,每一行代表一个特征,记为初始特征矩阵;
[0089] 权重计算单元,用于采用粒子群算法对每个特征计算出一个权重;
[0090] 加权单元,用于将每个特征与对应的权重相乘。
[0091] 所述卷积神经网络训练模块204具体包括:
[0092] 参数设置单元,用于设置卷积神经网络的内层参数top K,K=3;
[0093] 训练单元,用于以加权后的源代码为输入矩阵,训练卷积神经网络。
[0094] 所述权重调整模块207具体包括:
[0095] 权重调整单元,用于根据所述准确度采用调整粒子群算法调整所述源代码中的各代码的权重;
[0096] 调整特征矩阵确定单元,用于将调整后的权重与所述初始特征矩阵中对应的处理后的源代码相乘。
[0097] 本发明提供的恶意软件的检测系统,将卷积神经网络和惯性权重粒子群算法相结合,采用惯性权重粒子群算法对卷积神经网络的训练样本吧编号处理后的源代码分配权重,并根据卷积神经网络的准确度,采用惯性权重粒子群算法对权重进行调节,直至训练的卷积神经网络的准确度达到要求,这使得本发明所提供的恶意软件的检测方法及系统具有检测准确度高的特点。
[0098] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0099] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。