CN111262818B - 病毒检测方法、***、装置、设备及存储介质 - Google Patents
病毒检测方法、***、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111262818B CN111262818B CN201811459450.1A CN201811459450A CN111262818B CN 111262818 B CN111262818 B CN 111262818B CN 201811459450 A CN201811459450 A CN 201811459450A CN 111262818 B CN111262818 B CN 111262818B
- Authority
- CN
- China
- Prior art keywords
- feature
- characteristic
- sequences
- information
- sequence
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种病毒检测方法、***、装置、设备及存储介质,该方法通过获取应用程序安装包的静态信息,对该静态信息进行预处理,得到目标特征序列,目标特征序列中每个元素分别用于表征静态信息对应的多个元素,且目标特征序列的元素个数小于所述静态信息对应的元素个数,再通过预先训练好的神经网络***对目标特征序列进行特征提取,得到目标特征向量,并基于目标特征向量,得到应用程序安装包的病毒检测结果,有效地提高了应用程序安装包病毒检测的准确性。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种病毒检测方法、***、装置、设备及存储介质。
背景技术
随着互联网技术的不断发展,应用程序在人们的工作和生活中的使用越来越广泛。但是随着应用程序的广泛使用,诸多潜在的安全问题也逐渐暴露出来。近年来,根据不同杀毒软件厂商的调查报告,携带病毒的应用程序正在成倍的增长。安装这些携带病毒的应用程序后,病毒会破坏计算机***或者在计算机***上执行不良行为,如中断计算机操作,收集敏感信息,绕过访问控制,非法访问私人计算机以及显示各种广告信息等。因此,对应用程序的病毒检测至关重要。
现有的应用程序的病毒检测方法是通过标记已知的恶意代码来创建恶意代码库,进而通过恶意代码匹配的方式,得到检测结果。但是这种方式需要不断人为去更新恶意代码库,很容易被绕过,准确性较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种病毒检测方法、***、装置、设备及存储介质。
第一方面,本发明实施例提供了一种病毒检测方法,所述方法包括:获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述静态信息为所述应用程序安装包的二进制文件。
进一步地,所述对所述静态信息进行预处理,得到目标特征序列,包括:对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数。
进一步地,所述对所述静态信息进行预处理,得到N个特征序列,包括:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
进一步地,所述对所述静态信息进行预处理,得到N个特征序列,包括:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
进一步地,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
进一步地,所述神经网络***包括第一子网络以及第二子网络,所述通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;
通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接,
所述通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
通过所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
通过所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
进一步地,所述分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
通过所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
通过所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
进一步地,所述对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
第二方面,本发明实施例提供了一种病毒检测方法,所述方法包括:获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***。其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
第三方面,本发明实施例提供了一种病毒检测***,所述***包括:
第一获取模块,用于获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第一预处理模块,用于对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
神经网络模块,用于对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述静态信息为所述应用程序安装包的二进制文件。
进一步地,所述第一预处理模块用于:对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数。
进一步地,所述第一预处理模块用于:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
进一步地,所述第一预处理模块用于:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
进一步地,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
进一步地,所述神经网络模块包括第一子网络以及第二子网络。所述第一子网络,用于分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量。所述第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接。所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第一卷积层具体用于:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
进一步地,所述第一池化层具体用于:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述第二卷积层具体用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
进一步地,所述第二池化层具体用于:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
第四方面,本发明实施例提供了一种病毒检测装置,所述装置包括:
第二获取模块,用于获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第二预处理模块,用于对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
训练模块,用于将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备上述病毒检测方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述病毒检测方法的步骤。
本发明实施例提供的技术方案中,先获取应用程序安装包的静态信息,对该静态信息进行预处理,得到目标特征序列,然后再通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。通过神经网络***对解析应用程序安装包的代码文件得到的静态信息进行深入学习,能够得到更准确地病毒检测结果。并且由于目标特征序列中每个元素分别用于表征静态信息对应的多个元素,目标特征序列的元素个数小于静态信息对应的元素个数,减少了神经网络***的输入特征量,有利于提高检测效率,简化神经网络***的训练。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了适用于本发明实施例的一种运行环境示意图;
图2示出了本发明第一实施例提供的一种病毒检测方法的方法流程图;
图3示出了本发明第一实施例提供的一种神经网络***的解析过程示意图;
图4示出了本发明提供的神经网络***的训练方法一实施例的流程图;
图5示出了本发明提供的病毒检测***一实施例的结构示意图;
图6示出了本发明提供的病毒检测装置一实施例的结构示意图;
图7示出了本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
请参见图1,为适用于本发明实施例的一种运行环境示意图。如图1所示,一个或多个用户终端100(图1中仅示出一个)可通过网络200与一个或多个服务器300(图1中仅示出一个)相连,以进行数据通信或交互。其中,用户终端100可以是个人电脑(PersonalComputer,PC)、笔记本电脑、平板电脑、智能手机、电子阅读器、车载设备、网络电视和可穿戴设备等具有网络功能的智能设备。
本发明实施例提供的病毒检测方法可以应用于用户终端中,或者,也可以应用于服务器中。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图2示出了本发明第一实施例提供的一种病毒检测方法的方法流程图。本实施例中,该病毒检测方法可以应用于用户终端。当然,在本发明的其他实施例中,该病毒检测方法也可以应用于服务器。如图2所示,所述方法至少包括以下步骤S201至步骤S203。
步骤S201,获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的。
本实施例中,应用程序安装包是指需要检测是否携带有病毒的应用程序安装包,或者,在本发明的其他实施例中,应用程序安装包也可以是需要检测是否携带有病毒以及携带的病毒种类的应用程序安装包。具体的,应用程序安装包可以是移动终端的软件安装包,如安卓(Android)安装包,后缀为apk,也可以是电脑的软件安装包,如后缀为exe的安装包。
本实施例中,静态信息为通过解析应用程序安装包的代码文件得到的信息。作为一种实施方式,静态信息可以为应用程序安装包的二进制文件。
在本发明的其他实施例中,静态信息也可以为根据应用程序安装包的代码文件得到的操作码序列,操作码为该应用程序安装包的代码文件中的部分代码,可以是具备功能逻辑的代码,获取到多个操作码后,将这些操作码进行排序后可得到操作码序列。此时,获取应用程序安装包的静态信息的过程可以为:获取应用程序安装包并对该应用程序安装包进行反汇编操作,得到返汇编后的smali文件,提取出操作码(opcode),得到操作码序列。例如,假设待测的应用程序安装包为apk文件,在apk文件中存在格式为dex的代码文件,dex文件中包含有该apk文件对应的应用程序的所有源码,通过反汇编工具可以获取到相应的Jave编码。反汇编后即可得到格式为smali的文件,每个smali文件代表dex文件中的一个类,每个类由函数组成,每个函数则由指令组成,每个指令由一个操作码和多个操作数组成。
步骤S202,对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列的元素个数小于所述静态信息对应的元素个数,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素;
作为一种实施方式,对静态信息进行预处理,得到目标特征序列具体可以包括:对静态信息进行预处理,得到N个特征序列;将N个特征序列作为目标特征序列。本实施例中,N为大于或等于2的整数,N个特征序列的元素个数之和小于静态信息对应的元素个数。当然,在本发明其他实施例中,目标特征序列也可以包括一个序列。
具体来讲,上述对静态信息进行预处理,得到N个特征序列的过程包括:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
例如,当静态信息为应用程序安装包的二进制文件时,将二进制文件进行编码,得到第一编码序列;进而通过预设算法对第一编码序列进行降维,使得第一编码序列的编码数降低预设倍数;然后再将降维后的第一编码序列划分为N个特征序列。其中,预设倍数以及N的具体值可以根据实际需要设置。需要说明的是,降维后的第一编码序列中包括多个编码,每个编码为第一编码序列的一个元素。降维后的第一编码序列中每个元素均是基于降维前的第一编码序列中相应的多个元素得到的,即降维后的第一编码序列中每个元素分别对应于降维前的第一编码序列中的多个元素,具体对应的元素个数与上述预设倍数相关。
假设第一编码序列的编码数为500万,通过降维处理将第一编码序列的编码数降低为9万,然后降维后的第一编码序列进行划分。例如,当间隔预设编码数划分,且预设编码数为1000时,可以将降维后的第一编码序列划分为90个编码数为1000的特征序列。
或者,上述对静态信息进行预处理,得到N个特征序列的过程也可以为:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
例如,当静态信息为应用程序安装包的二进制文件时,如图3所示,将二进制文件划分为N个二进制序列,将每个二进制序列作为上述的静态序列;然后,对N个二进制序列中每个二进制序列进行编码,得到N个第二编码序列;进而基于预设算法对N个第二编码序列中每个第二编码序列进行降维,使得第二编码序列的编码数降低预设倍数,得到N个特征序列。例如,可以降低100倍或50倍等,可以将第二编码序列的编码数由几百万降为几万。可以理解的是,一个第二编码序列对应于一个特征序列。同理,特征序列中每个元素分别对应于相应的第二编码序列中的多个元素,具体对应的元素个数与上述预设倍数相关。
本实施例中,将二进制文件划分为N个二进制序列的划分方式可以根据实际需要设置。作为一种实施方式,可以间隔预设字节数划分,预设字节数可以根据实际需要设置,例如,假设ai表示第i个字节,当预设字节数为50000时,将a1~a50000划分为一个二进制序列,将a50001~a100000划分为一个二进制序列,以此类推。作为另一种实施方式,可以按照第一预设步长以及第一预设长度划分,第一预设步长和第一预设长度均可以根据需要设置,例如,假设ai表示第i个字节,当第一预设步长为10000个字节,第一预设长度为50000个字节时,将a1~a50000划分为一个二进制序列,将a10001~a60000划分为一个二进制序列,以此类推。
本实施例中,对二进制文件进行编码的方式可以有多种,具体可以根据需要设置。例如,可以将二进制文件中每个字节的二进制数转化为十进制数,则每个字节可以转化为一个0~255范围内的数。例如,对应用程序安装包的二进制文件中部分二进制数对应的十六进制编码为“\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff”,对应转化为十进制数后的编码为“144,0,3,0,0,0,4,0,0,0,255,255”。
本实施例中,预设算法可以为双三次插值算法、最邻近插值算法或双线性插值算法等能够对矩阵进行压缩的算法。下面以一种预处理的具体实施方式为例,对利用双三次插值算法进行降维处理的原理进行介绍:
假设对应用程序安装包的二进制文件进行编码后,得到的第一编码序列Q的编码数为M,经过降维处理后的第一编码序列Q′的编码数为m。为了得到降维后对应的编码值,首先可以基于公式x=X*(M/m)得到降维后的点在第一编码序列Q中对应元素的位置。其中,x表示降维后的点在第一编码序列Q中对应元素的位置,X表示降维后的点在第一编码序列Q′中的位置。可以理解的是,所求得的x是小数值。例如,可以将第一编码序列Q表示为一个1×M的矩阵,将第一编码序列Q′表示为一个1×m的矩阵,假设M=1000,m=300,则第一编码序列Q′中的第一个元素在第一编码序列Q中对应元素的位置为:1*1000/300≈3.3。同理,可以得到第一编码序列Q′中的第2、3、4、…、m个元素在第一编码序列Q中对应元素的位置。
进一步地,同对矩阵的压缩类似,可以通过这个小数值x找到距离x最近的4个点,利用预先设置的基函数,求出对应的权值,从而获得降维后的第一编码序列Q′中的元素值。例如,预先设置的基函数可以如下:
def_hermite(A,B,C,D,t)
{/*基函数
参数:A、B、C、D为距离该点最近的4个点,t为该点的小数部分
*/
a=A*(-0.5)+B*1.5+C*(-1.5)+D*0.5
b=A+B*(-2.5)+C*2.0+D*(-0.5)
c=A*(-0.5)+C*0.5
d=B
return a*t*t*t+b*t*t+c*t+d}
该函数的返回结果即为该点的元素值。
由于应用程序安装包的静态信息数据量较大,对静态信息进行降维后再进行后续神经网络学习,有利于提高处理速度,相应地,也可以减少神经网络***的训练时间,降低资源占用。
步骤S203,通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
本实施例中,神经网络***可以采用卷积神经网络,或者,也可以采用其他类型的神经网络,如深度神经网络。
作为一种实施方式,为了实现对静态信息的更精细的学习,预先训练好的神经网络***可以包括第一子网络以及第二子网络,目标特征向量包括N个特征序列。第一子网络用于提取每个特征序列对应的局部关键信息。第二子网络用于基于第一子网络提取的每个特征序列对应的局部关键信息进一步提取更全面的特征参数,并得到应用程序安装包的病毒检测结果。作为一种实施方式,第一子网络和第二子网络可以均采用卷积神经网络。当然,在本发明其他实施例中,第一子网络和第二子网络也可以根据实际需要采用其他类型的神经网络,如深度神经网络。
此时,上述通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果,可以包括:通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接。可以理解的是,第一卷积层的作用在于基于预先设置的预设数量的卷积核与每个特征序列做卷积,得到卷积特征,并将卷积特征输入一激活函数进行激活。第一池化层的作用在于进一步对激活后的卷积特征进行降维以及特征提取。
此时,上述通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,具体包括:通过所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;通过所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,上述第一激活函数可以为Relu函数。Relu激活函数可以较好地防止梯度衰减问题。当然,也可以根据需要采用其他激活函数。
可选的,上述分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息具体可以包括:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息,如图3所示。其中,第二激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制局部特征信息的传递,提高了局部特征的表示能力。
需要说明的是,在上述一维卷积处理中,一维卷积核的数量、尺寸和步长可以根据实际需要设置。本实施例可以通过采用较大尺寸的一维卷积核和步长,以降低计算和存储压力。
可选的,上述分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量具体可以包括:通过最大池化方式(max-pooling)分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。其中,第一特征向量的元素个数由第一卷积层所设置的一维卷积核的数量决定。采用max-pooling引入了不变性,同时进行了降维和局部关键信息提取,防止过拟合。
可选的,第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。此时,上述通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果具体可以包括:通过所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;通过所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;通过所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
例如,Pj表示N个特征序列中第j个特征序列对应的第一特征向量,j为1到N之间的整数。将P1至PN进行拼接得到第二特征向量。可以理解的是,假设P1至PN均为H维的向量,则第二特征向量为一个N*H维的向量,例如H=10,N=90,则第二特征向量为一个900维的向量。
本实施例中,第三激活函数也可以采样Relu函数。同样,Relu激活函数可以较好地防止梯度衰减问题。
可选的,上述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息具体可以包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息,如图3所示。其中,第四激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制全局特征信息的传递,提高了全局特征的表示能力。
可选的,上述对所述激活后的第二特征信息进行池化处理,得到第三特征向量具体可以包括:通过平均池化方式(avg-pooling)对所述激活后的第二特征信息进行池化处理,得到第三特征向量。采用avg-pooling是为了兼顾全局信息与局部信息,使模型能够充分利用每个特征序列的特征。
可选的,如图3所示,输出层可以包括全连接层和分类器。可以理解的是,卷积神经网络的卷积层和池化层等作用是将原始数据映射到隐层特征空间中,全连接层的目的是将网络学习到的特征映射到样本的标记空间中,将经过卷积层和池化层处理得到的特征进行整合,获取这些特征具有的高层含义,以便用于后续分类。
本实施例中,可以将第三特征向量作为全连接层的输入,全连接层的输出为一个T×1的向量,作为分类器的输入。其中,T为类别数。分类器用于基于全连接层的输出向量得到样本属于每个类别的概率。分类器的输出也是一个T×1的向量,分类器输出向量中每个元素的值的大小范围为0到1之间,且各元素的值相加等于1。
需要说明的是,分类的类别数根据实际需要设置。例如,在一种应用场景中,需要检测应用程序安装包是否携带有病毒,则属于二分类,此时,应用程序安装包的病毒检测结果为应用程序安装包是否携带病毒的概率。又例如,在另一种应用场景中,需要检测应用程序安装包是否携带有病毒以及携带病毒的种类,此时应用程序安装包的病毒检测结果可以分为三类或三类以上,包括应用程序安装包是否携带有病毒以及携带病毒的种类,应用程序安装包的病毒检测结果为应用程序安装包是否携带有病毒以及携带病毒属于每一类的概率。
可选的,全连接层可以采用Highway Network结构。通过采用Highway Network结构,将层表示为学习残差函数。这样能够通过单纯地增加网络深度,来提高网络性能。可选的,分类器可以采用Softmax函数。
在本发明的一实施例中,为了提高神经网络***训练过程的收敛速度,本方法还可以包括:获取应用程序安装包的相关特征。此时,第二子网络可以基于第三特征向量以及上述相关特征,得到应用程序安装包的病毒检测结果。
具体来讲,相关特征可以为应用程序安装包的标识信息。标识信息可以是应用程序安装包的唯一标识符。例如,应用程序安装包的标识信息可以包括该应用程序的名称和/或包名。此时,基于第三特征向量以及应用程序安装包的标识信息,得到应用程序安装包的病毒检测结果的实施过程可以包括:将应用程序安装包的标识信息转化为第四特征向量,将第三特征向量和第四特征向量进行拼接,得到第五特征向量,将第五特征向量输入全连接层,进而再通过分类器得到应用程序安装包的病毒检测结果。
可以理解的是,当应用程序安装包的标识信息为应用程序的名称时,第五特征向量即为应用程序名称转化成的向量;当应用程序安装包的标识信息为应用程序的包名时,第五特征向量即为应用程序包名转化成的向量;当应用程序安装包的标识信息包括应用程序的名称和包名时,则第五特征向量包括应用程序名称转化成的向量以及应用程序的包名转化成的向量。
需要说明的是,相关特征可以不限于应用程序安装包的上述标识信息,在能够实现上述提高收敛速度且较准确地得到应用程序安装包的病毒检测结果的效果的基础上,还可以是应用程序安装包的其他唯一标识符。
本方案通过神经网络***对解析应用程序安装包的代码文件得到的静态信息进行深入学习,能够得到更准确地病毒检测结果。并且,由于目标特征序列中每个元素分别用于表征静态信息对应的多个元素,目标特征序列的元素个数小于静态信息对应的元素个数,减少了神经网络***的输入特征量,有利于提高检测效率,简化神经网络***的训练。
当然,在执行第一实施例所示的病毒检测方法之前,还需要先对神经网络***进行训练,得到神经网络***的相关参数。对神经网络***进行训练的过程可以在服务器中执行。图4为本发明神经网络***的训练方法一个实施例的流程图。如图4所示,本实施例的方法至少可以包括以下步骤S401至步骤S403。
步骤S401,获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的。
步骤S402,对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数。
步骤S403,将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***。
可以理解的是,在训练神经网络***时,需要获取多个已知类别的应用程序安装包作为训练样本。训练样本的选取与具体的检测需求有关,例如,当需要检测应用程序安装包是否携带有病毒时,上述病毒标签对应于两种类别,一种类别是携带病毒的应用程序安装包,另一种类别是未携带病毒的应用程序安装包;当需要检测应用程序安装包是否携带有病毒以及携带病毒的种类时,假设病毒种类为两类,分别为Ⅰ类病毒和Ⅱ类病毒,则上述病毒标签对应于三种类别,分别为未携带病毒的应用程序安装包、携带Ⅰ类病毒的应用程序安装包以及携带Ⅱ类病毒的应用程序安装包。
上述步骤S402中,对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列的具体实施过程可以参照上述第一实施例中的相关描述,此处不再赘述。
上述步骤S403中,目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,目标特征序列包括N个特征序列。神经网络***包括第一子网络以及第二子网络。此时,需要通过训练得到第一子网络以及第二子网络的相关参数。其中,第一子网络用于分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量。第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接。其中,第一卷积层用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。第一池化层用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第一卷积层具体用于针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,第一池化层具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。其中,第二卷积层用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。第二池化层用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。输出层用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,第二卷积层具体用于对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,第二池化层具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
可选的,为了提高神经网络***训练过程的收敛速度,训练样本还可以包括:每个应用程序安装包的相关特征。此时,第二子网络具体用于基于第三特征向量以及上述相关特征,得到应用程序安装包的病毒检测结果。具体来讲,相关特征可以为应用程序安装包的标识信息。例如,应用程序安装包的标识信息可以包括该应用程序的名称和/或包名。
图5为本发明提供的病毒检测***一个实施例的结构示意图,如图5所示,本实施例提供的病毒检测***50可以包括:
第一获取模块51,用于获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第一预处理模块52,用于对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
神经网络模块53,用于对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,所述静态信息为所述应用程序安装包的二进制文件。
可选的,所述第一预处理模块52用于:对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数。
可选的,所述第一预处理模块52用于:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
可选的,所述第一预处理模块52用于:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
可选的,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
可选的,所述神经网络模块53包括第一子网络530以及第二子网络540。所述第一子网络530,用于分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量。所述第二子网络540,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,所述第一子网络530包括:第一卷积层531和第一池化层532,所述第一卷积层531以及所述第一池化层532依次连接。所述第一卷积层531,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。所述第一池化层532,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第一卷积层531具体用于:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,所述第一池化层532具体用于:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第二子网络540包括第二卷积层541、第二池化层542和输出层543,所述第二卷积层541、第二池化层542和输出层543依次连接。所述第二卷积层541,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。所述第二池化层542,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。所述输出层543,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,所述第二卷积层541具体用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,所述第二池化层542具体用于:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本实施例提供的病毒检测***50,可用于执行图2所示方法实施例提供的技术方案,具体实现方式和技术效果类似,此处不再赘述。
另外,本发明一实施例还提供了一种病毒检测装置。如图6所示,该病毒检测装置60包括:
第二获取模块61,用于获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第二预处理模块62,用于对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列的元素个数小于所述静态信息对应的元素个数,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素;
训练模块63,用于将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
需要说明的是,本发明实施例所提供的病毒检测装置60,其具体实现及产生的技术效果和前述神经网络***的训练方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述神经网络***的训练方法实施例中相应内容。
本发明一实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行上述第一实施例提供的病毒检测方法的步骤。
本发明一实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行上述神经网络***的训练方法的步骤。
图7示出了一种示例性电子设备700的模块框图。如图7所示,电子设备700包括存储器702、存储控制器704,一个或多个(图中仅示出一个)处理器706、外设接口708、网络模块710、输入输出模块712以及显示模块714等。这些组件通过一条或多条通讯总线/信号线716相互通讯。
存储器702可用于存储软件程序以及模块,如本发明实施例中的病毒检测方法对应的程序指令/模块,处理器706通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的病毒检测方法。
存储器702可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器706以及其他可能的组件对存储器702的访问可在存储控制器704的控制下进行。
外设接口708将各种输入/输出装置耦合至处理器706以及存储器702。在一些实施例中,外设接口708,处理器706以及存储控制器704可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
网络模块710用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。
输入输出模块712用于提供给用户输入数据实现用户与电子设备的交互。所述输入输出模块712可以是,但不限于,鼠标、键盘和触控屏幕等。
显示模块714在电子设备700与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示模块917可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图7所示的结构仅为示意,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
本发明一实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的病毒检测方法的步骤。
本发明一实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的神经网络***的训练方法的步骤。
所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,本说明书中每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种病毒检测方法,所述方法包括:获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
A2、根据A1所述的方法,所述静态信息为所述应用程序安装包的二进制文件。
A3、根据A1所述的方法,所述对所述静态信息进行预处理,得到目标特征序列,包括:对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数。
A4、根据A3所述的方法,所述对所述静态信息进行预处理,得到N个特征序列,包括:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
A5、根据A3所述的方法,所述对所述静态信息进行预处理,得到N个特征序列,包括:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
A6、根据A4或A5所述的方法,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
A7、根据A3所述的方法,所述神经网络***包括第一子网络以及第二子网络,所述通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果,包括:通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
A8、根据A7所述的方法,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接。所述通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
通过所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
通过所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A9、根据A8所述的方法,所述分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:
针对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
A10、根据A8所述的方法,所述分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A11、根据A7所述的方法,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
通过所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
通过所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
A12、根据A11所述的方法,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
A13.根据A11所述的方法,所述对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本发明公开了B14、一种病毒检测方法,所述方法包括:
获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
本发明公开了C15、一种病毒检测***,所述***包括:
第一获取模块,用于获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第一预处理模块,用于对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
神经网络模块,用于对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
C16、根据C15所述的***,所述静态信息为所述应用程序安装包的二进制文件。
C17、根据C15所述的***,所述第一预处理模块用于:对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数。
C18、根据C17所述的***,所述第一预处理模块用于:基于预设算法,对所述静态信息进行降维处理;将经过所述降维处理的静态信息划分为N个特征序列。
C19、根据C17所述的***,所述第一预处理模块用于:基于所述静态信息得到N个静态序列;基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
C20、根据C18或C19所述的***,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
C21、根据C17所述的***,所述神经网络模块包括第一子网络以及第二子网络。所述第一子网络,用于分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;所述第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
C22、根据C21所述的***,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接。所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
C23、根据C22所述的***,所述第一卷积层具体用于:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
C24、根据C22所述的***,所述第一池化层具体用于:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
C25、根据C21所述的***,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量;所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
C26、根据C25所述的***,所述第二卷积层具体用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
C27、根据C25所述的***,所述第二池化层具体用于:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本发明公开了D28、一种病毒检测装置,所述装置包括:
第二获取模块,用于获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第二预处理模块,用于对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
训练模块,用于将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果。
本发明公开了E29、一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行A1-A13以及B14中任一项所述方法的步骤。
本发明公开了F30、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A13以及B14中任一项所述方法的步骤。
Claims (26)
1.一种病毒检测方法,其特征在于,所述方法包括:
获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果;
其中,所述对所述静态信息进行预处理,得到目标特征序列,包括:
对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;
将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数;
所述神经网络***包括第一子网络以及第二子网络,所述通过预先训练好的神经网络***对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;
通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
2.根据权利要求1所述的方法,其特征在于,所述静态信息为所述应用程序安装包的二进制文件。
3.根据权利要求1所述的方法,其特征在于,所述对所述静态信息进行预处理,得到N个特征序列,包括:
基于预设算法,对所述静态信息进行降维处理;
将经过所述降维处理的静态信息划分为N个特征序列。
4.根据权利要求1所述的方法,其特征在于,所述对所述静态信息进行预处理,得到N个特征序列,包括:
基于所述静态信息得到N个静态序列;
基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
5.根据权利要求3或4所述的方法,其特征在于,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
6.根据权利要求1所述的方法,其特征在于,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接,
所述通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
通过所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
通过所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
7.根据权利要求6所述的方法,其特征在于,所述分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:
针对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
8.根据权利要求7所述的方法,其特征在于,所述分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:
通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
9.根据权利要求1所述的方法,其特征在于,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接,
所述通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
通过所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
通过所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
10.根据权利要求9所述的方法,其特征在于,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
11.根据权利要求9所述的方法,其特征在于,所述对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:
通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
12.一种病毒检测方法,其特征在于,所述方法包括:
获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果;
所述对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,包括:
对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;
将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数;
所述神经网络***包括第一子网络以及第二子网络,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果,包括:
通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;
通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
13.一种病毒检测***,其特征在于,所述***包括:
第一获取模块,用于获取应用程序安装包的静态信息,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第一预处理模块,用于对所述静态信息进行预处理,得到目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
神经网络模块,用于对所述目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果;
其中,所述第一预处理模块用于:
对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;
将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数;
所述神经网络模块包括第一子网络以及第二子网络,
所述第一子网络,用于分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;
所述第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
14.根据权利要求13所述的***,其特征在于,所述静态信息为所述应用程序安装包的二进制文件。
15.根据权利要求13所述的***,其特征在于,所述第一预处理模块用于:
基于预设算法,对所述静态信息进行降维处理;
将经过所述降维处理的静态信息划分为N个特征序列。
16.根据权利要求13所述的***,其特征在于,所述第一预处理模块用于:
基于所述静态信息得到N个静态序列;
基于预设算法,对所述N个静态序列中每个静态序列进行降维处理,得到N个特征序列。
17.根据权利要求15或16所述的***,其特征在于,所述预设算法为双三次插值算法、最邻近插值算法或双线性插值算法。
18.根据权利要求13所述的***,其特征在于,所述第一子网络包括:第一卷积层和第一池化层,所述第一卷积层以及所述第一池化层依次连接,
所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
19.根据权利要求18所述的***,其特征在于,所述第一卷积层具体用于:
针对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
20.根据权利要求18所述的***,其特征在于,所述第一池化层具体用于:
通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
21.根据权利要求13所述的***,其特征在于,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接,
所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
22.根据权利要求21所述的***,其特征在于,所述第二卷积层具体用于:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
23.根据权利要求21所述的***,其特征在于,所述第二池化层具体用于:
通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
24.一种病毒检测装置,其特征在于,所述装置包括:
第二获取模块,用于获取多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
第二预处理模块,用于对每个应用程序安装包的静态信息进行预处理,得到所述静态信息对应的目标特征序列,其中,所述目标特征序列中每个元素分别用于表征所述静态信息对应的多个元素,且所述目标特征序列的元素个数小于所述静态信息对应的元素个数;
训练模块,用于将所述多个应用程序安装包对应的目标特征序列以及病毒标签作为训练样本,通过所述训练样本对预先构建的初始神经网络***进行训练,得到目标神经网络***;
其中,所述目标神经网络***用于对获取到的应用程序安装包的目标特征序列进行特征提取,得到目标特征向量,并基于所述目标特征向量,得到所述应用程序安装包的病毒检测结果;
所述第二预处理模块用于:
对所述静态信息进行预处理,得到N个特征序列,其中,N为大于或等于2的整数;
将所述N个特征序列作为所述目标特征序列,其中,所述N个特征序列的元素个数之和小于所述静态信息对应的元素个数;
所述神经网络***包括第一子网络以及第二子网络,所述目标神经网络***用于:
通过所述第一子网络分别对所述N个特征序列中每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量;
通过所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
25.一种电子设备,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行权利要求1-12中任一项所述方法的步骤。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-12中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811459450.1A CN111262818B (zh) | 2018-11-30 | 2018-11-30 | 病毒检测方法、***、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811459450.1A CN111262818B (zh) | 2018-11-30 | 2018-11-30 | 病毒检测方法、***、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111262818A CN111262818A (zh) | 2020-06-09 |
CN111262818B true CN111262818B (zh) | 2023-08-15 |
Family
ID=70948318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811459450.1A Active CN111262818B (zh) | 2018-11-30 | 2018-11-30 | 病毒检测方法、***、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111262818B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896597B (zh) * | 2022-05-09 | 2022-11-15 | 南开大学 | 基于可执行文件线性序列表示的计算机恶意代码检测方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789871A (zh) * | 2016-11-10 | 2017-05-31 | 东软集团股份有限公司 | 攻击检测方法、装置、网络设备及终端设备 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN107180191A (zh) * | 2017-05-03 | 2017-09-19 | 北京理工大学 | 一种基于半监督学习的恶意代码分析方法和*** |
CN107798243A (zh) * | 2017-11-25 | 2018-03-13 | 国网河南省电力公司电力科学研究院 | 终端应用的检测方法和装置 |
CN107832209A (zh) * | 2017-10-26 | 2018-03-23 | 北京邮电大学 | 一种基于混合检测结果的Android应用行为分析方法 |
CN108021806A (zh) * | 2017-11-24 | 2018-05-11 | 北京奇虎科技有限公司 | 一种恶意安装包的识别方法和装置 |
CN108334781A (zh) * | 2018-03-07 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、计算机可读存储介质和计算机设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI461952B (zh) * | 2012-12-26 | 2014-11-21 | Univ Nat Taiwan Science Tech | 惡意程式偵測方法與系統 |
US9367685B2 (en) * | 2014-09-30 | 2016-06-14 | Juniper Networks, Inc. | Dynamically optimizing performance of a security appliance |
CN105975857A (zh) * | 2015-11-17 | 2016-09-28 | 武汉安天信息技术有限责任公司 | 基于深度学习方法推断恶意代码规则的方法及*** |
-
2018
- 2018-11-30 CN CN201811459450.1A patent/CN111262818B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789871A (zh) * | 2016-11-10 | 2017-05-31 | 东软集团股份有限公司 | 攻击检测方法、装置、网络设备及终端设备 |
CN107180191A (zh) * | 2017-05-03 | 2017-09-19 | 北京理工大学 | 一种基于半监督学习的恶意代码分析方法和*** |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN107832209A (zh) * | 2017-10-26 | 2018-03-23 | 北京邮电大学 | 一种基于混合检测结果的Android应用行为分析方法 |
CN108021806A (zh) * | 2017-11-24 | 2018-05-11 | 北京奇虎科技有限公司 | 一种恶意安装包的识别方法和装置 |
CN107798243A (zh) * | 2017-11-25 | 2018-03-13 | 国网河南省电力公司电力科学研究院 | 终端应用的检测方法和装置 |
CN108334781A (zh) * | 2018-03-07 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、计算机可读存储介质和计算机设备 |
Non-Patent Citations (1)
Title |
---|
一种基于信任评估的云存储服务模型;杨银波等;《电子科学技术》;20150110(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111262818A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109711160B (zh) | 应用程序检测方法、装置及神经网络*** | |
CN111107048B (zh) | 一种钓鱼网站检测方法、装置和存储介质 | |
Bakour et al. | VisDroid: Android malware classification based on local and global image features, bag of visual words and machine learning techniques | |
Gao et al. | Malware classification for the cloud via semi-supervised transfer learning | |
Ünver et al. | Android malware detection based on image-based features and machine learning techniques | |
CN109905385B (zh) | 一种webshell检测方法、装置及*** | |
CN112005532B (zh) | 用于对可执行文件进行分类的方法、***和存储介质 | |
CN109101817A (zh) | 一种识别恶意文件类别的方法及计算设备 | |
CN110929203B (zh) | 异常用户的识别方法、装置、设备及存储介质 | |
CN104168293A (zh) | 结合本地内容规则库识别可疑钓鱼网页的方法及*** | |
CN110781925B (zh) | 软件页面的分类方法、装置、电子设备及存储介质 | |
Jeong et al. | Adversarial attack-based security vulnerability verification using deep learning library for multimedia video surveillance | |
CN109635563A (zh) | 用于识别恶意应用程序的方法、装置、设备及存储介质 | |
CN111612635A (zh) | 用户金融风险分析方法、装置及电子设备 | |
CN111198967A (zh) | 基于关系图谱的用户分组方法、装置及电子设备 | |
AlGarni et al. | An efficient convolutional neural network with transfer learning for malware classification | |
CN115828239A (zh) | 一种多维数据决策融合的恶意代码检测方法 | |
CN111262818B (zh) | 病毒检测方法、***、装置、设备及存储介质 | |
CN113918949A (zh) | 基于多模态融合的诈骗app的识别方法 | |
Wang et al. | A survey of Android malware detection based on deep learning | |
CN111259385B (zh) | 应用程序识别方法、装置及神经网络*** | |
CN116383707A (zh) | 恶意代码检测方法、装置、设备和介质 | |
CN112463778B (zh) | 基于大数据和应用程序的信息处理方法及大数据服务器 | |
CN113409014A (zh) | 基于人工智能的大数据业务处理方法及人工智能服务器 | |
CN113888760A (zh) | 基于软件应用的违规信息监控方法、装置、设备及介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230725 Address after: Room 03, 2nd Floor, Building A, No. 20 Haitai Avenue, Huayuan Industrial Zone (Huanwai), Binhai New Area, Tianjin, 300450 Applicant after: 3600 Technology Group Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |