CN111177721A - 一种文件的病毒检测方法、装置、终端及存储介质 - Google Patents

一种文件的病毒检测方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN111177721A
CN111177721A CN201910749584.5A CN201910749584A CN111177721A CN 111177721 A CN111177721 A CN 111177721A CN 201910749584 A CN201910749584 A CN 201910749584A CN 111177721 A CN111177721 A CN 111177721A
Authority
CN
China
Prior art keywords
virus
string
characteristic
file
sub
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
Application number
CN201910749584.5A
Other languages
English (en)
Inventor
彭宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910749584.5A priority Critical patent/CN111177721A/zh
Publication of CN111177721A publication Critical patent/CN111177721A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文件的病毒检测方法、装置、终端及存储介质,其中,文件的病毒检测方法包括:获取目标文件;将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。本发明加速了病毒的特征匹配,缩短了病毒特征匹配的耗时,提高了病毒查杀的效率。

Description

一种文件的病毒检测方法、装置、终端及存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种文件的病毒检测方法、装置、终端及存储介质。
背景技术
网络病毒(也称病毒)是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一种计算机指令或者程序代码。
相关技术在对文件进行病毒检测时,一般对待检测文件进行病毒特征匹配,如果该待检测文件中包含病毒特征字符串,则确定该待检测文件为病毒文件。然而,相关技术中病毒特征匹配过程的耗时较长,从而导致整个文件的病毒查杀过程耗时长,文件的病毒查杀效率低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种文件的病毒检测方法、装置、终端及存储介质。所述技术方案如下:
一方面,提供了一种文件的病毒检测方法,所述方法包括:
获取目标文件;
将目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;
在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;
根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
另一方面,提供了一种文件的病毒检测装置,所述装置包括:
第一获取模块,用于获取目标文件;
第一比对模块,用于将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;
第二比对模块,用于在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;
病毒检测模块,用于根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
可选的,所述满足预设条件的连续字符串包括多个特征子串中总概率值最小的特征子串;所述装置还包括:
第一确定模块,用于基于字节概率库,确定所述病毒特征字符串中字符对应的字节的概率值;
第二确定模块,用于按照预设字符串长度,确定所述病毒特征字符串所包含的多个字符子串;
计算模块,用于对所述字符子串中字符对应的字节的概率值进行求和,得到对应于所述多个字符子串中每个字符子串的总概率值;
第三确定模块,用于将所述多个字符子串中总概率值最小的字符子串确定为所述病毒特征字符串的第一特征子串。
可选的,所述第一确定模块包括:
第四确定模块,用于确定所述目标文件的文件类型;
第五确定模块,用于确定所述字节概率库中与所述病毒特征字符串中字符对应的字节相匹配的目标字节;
第六确定模块,用于基于字节概率库中目标字节、文件类型和概率值的对应关系,确定与所述目标文件的文件类型相匹配的目标对应关系;
第二获取模块,用于获取所述目标对应关系中的概率值,将所述目标对应关系中的概率值作为所述字符对应的字节的概率值。
可选的,所述装置还包括:
第三获取模块,用于获取不同文件类型的样本文件;
第七确定模块,用于确定同一文件类型的样本文件中同一字节的出现次数,以及所述同一文件类型的样本文件的所有字节出现的总次数;
第八确定模块,确定所述同一字节的出现次数与所述所有字节出现的总次数的比值,得到概率值;
对应关系建立模块,用于建立所述字节、文件类型与概率值的对应关系;
创建模块,用于基于所述字节、文件类型与概率值的对应关系创建所述字节概率库。
可选的,所述装置还包括:
优先级设置模块,用于设置所述第一特征子串的比对优先级高于所述第二特征子串;
调整模块,用于按照比对优先级由高至低对所述第一特征子串和第二特征子串进行排列,得到调整后的所述病毒特征字符串。
可选的,所述第二特征子串包括由所述第一特征子串隔开的第三特征子串和第四特征子串;
所述第二比对模块包括:
第九确定模块,用于将所述目标文件中除对应于所述第一特征子串的数据之外的数据确定为待检测数据;所述待检测数据包括由对应于所述第一特征子串的数据隔开的第一待检测数据和第二待检测数据;
第一比对子模块,用于将所述第一待检测数据与所述第三特征子串进行比对;
第二比对子模块,在所述第一待检测数据包括所述第三特征子串的情况下,将所述第二待检测数据与所述第四特征子串进行比对。
可选的,所述病毒检测模块,用于在所述比对结果为所述第二待检测数据包括所述第四特征子串时,确定所述目标文件为病毒文件。
另一方面,提供了一种终端,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述文件的病毒检测方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的文件的病毒检测方法。
本发明实施例通过将目标文件与病毒特征字符串中满足预设条件的第一特征子串进行比对,在目标文件包括该第一特征子串的情况下,将目标文件与病毒特征字符串中除第一特征子串之外的第二特征子串进行比对,并根据与该第二特征子串的比对结果来确定目标文件是否为病毒文件,从而可以在第一次比对(即与第一特征子串的比对)中最大概率的过滤掉不匹配的情况,避免了剩余的特征子串(即第二特征子串)参与后续的匹配过程,进而加速了病毒的特征匹配,缩短了病毒特征匹配的耗时,有利于提高病毒查杀的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文件的病毒检测方法的流程示意图;
图2是本发明实施例提供的另一种文件的病毒检测方法的流程示意图;
图3是本发明实施例提供的基于字节概率库确定病毒特征字符串中字符对应的字节的概率值的一种方法的流程示意图;
图4是本发明实施例提供的病毒特征字符串与目标文件比对的示意图;
图5是本发明实施例提供的对应于图4的另一种文件的病毒检测方法的流程示意图;
图6是本发明实施例提供的一种文件的病毒检测装置的结构示意图;
图7是本发明实施例提供的另一种文件的病毒检测装置的结构示意图;
图8是本发明实施例提供的另一种文件的病毒检测装置的结构示意图;
图9是本发明实施例提供的一种终端的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其所示为本发明实施例提供的一种文件的病毒检测方法的流程示意图,该文件的病毒检测方法可以应用于本发明实施例的文件的病毒检测装置,该文本的病毒检测装置可配置于计算机设备中,该计算机设备可以是终端或者服务器。其中,终端可以但不限于包括智能手机、台式电脑、平板电脑、笔记本电脑等具有各种操作系统的硬件设备。服务器可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图1所示,所述方法可以包括:
S101,获取目标文件。
其中,目标文件为需要进行病毒扫描,以确定是否为病毒文件的文件。实际应用中,用户可以根据需要选择某个文件进行病毒扫描,该选中的需要进行病毒扫描的文件即为目标文件;当然,用户也可以根据需要选择某个磁盘分区或者目录并启动全局病毒查杀指令,即可遍历该磁盘分区或者目录下的所有文件,并将每个遍历到的文件作为目标文件。
S103,将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串。
其中,病毒特征字符串是能够反映计算机病毒特征的字符串序列,可以是从已经确定的病毒文件中提取的用于表示该病毒的字符串,病毒特征字符串可以存储于病毒特征库,该病毒特征库中可以存储多条不同病毒对应的病毒特征字符串。
第一特征子串为病毒特征字符串中满足预设条件的连续字符串,具体的,该满足预设条件的连续字符串可以包括多个特征子串中总概率值最小的特征子串,即如图2所示,该方法还可以包括:
S201,基于字节概率库,确定所述病毒特征字符串中字符对应的字节的概率值。
其中,字节概率库中存储有字节、文件类型和概率值的对应关系,该对应关系中的字节可以采用字节值来唯一标识一个字节,该字节值的取值范围为0~255中的整数。具体的,字节概率库的创建可以但不限于包括以下步骤:
获取不同文件类型的样本文件。其中,样本文件的文件类型可以但不限于包括文本文件(如txt、Doc、XLS、WPS等)、图片文件(Bmp、GIF、Jpg、PSD等)、视频文件(AVI、Mpg等)、压缩包文件、可执行文件exe,日志文件log以及命令文件Com等等。具体的,可以从指定存储空间如样本库中获取不同文件类型的样本文件,该指定存储空间可以是本地存储空间,也可以是云端的存储空间,指定存储空间中存储有海量的不同文件类型的样本文件。
确定同一文件类型的样本文件中同一字节的出现次数,以及所述同一文件类型的样本文件的所有字节出现的总次数。即对每一文件类型所包含的样本文件中的字节进行统计,以确定所有字节出现的总次数以及同一字节的出现次数。
确定所述同一字节的出现次数与所述所有字节出现的总次数的比值,得到概率值。
建立所述字节、文件类型与概率值的对应关系。即在该对应关系中,一个字节可以对应多个文件类型,每个文件类型对应一个概率值,该概率值即为该字节在该文件类型的概率值。
基于所述字节、文件类型与概率值的对应关系创建所述字节概率库。
本发明实施例在创建字节概率库时充分考虑了不同文件类型的数据组成差异,基于该数据组成差异得到的字节、文件类型与概率值的对应关系有利于后续进一步加速病毒特征匹配。
本说明书实施例中,所述基于字节概率库确定所述病毒特征字符串中字符对应的字节的概率值可以采用图3中的方法,如图3所示,该方法可以包括:
S301,确定所述目标文件的文件类型。
S303,确定所述字节概率库中与所述病毒特征字符串中字符对应的字节相匹配的目标字节。
具体的,查找字节概率库中与病毒特征字符串中字符对应的字节相匹配的目标字节。
S305,基于字节概率库中目标字节、文件类型和概率值的对应关系,确定与所述目标文件的文件类型相匹配的目标对应关系。
具体的,在查找到目标字节后,可以获取目标字节在字节概率库中的对应关系,该对应关系中包括与目标字节对应的多个文件类型,每个文件类型对应一个概率值。基于目标文件的文件类型,确定该对应关系中与目标文件的文件类型相匹配的目标对应关系。
S307,获取所述目标对应关系中的概率值,将所述目标对应关系中的概率值作为所述字符对应的字节的概率值。
S203,按照预设字符串长度,确定所述病毒特征字符串所包含的多个字符子串。
其中,预设字符串长度是指字符串包含有预设数量个连续字符,在本说明书实施例中,预设字符串长度不超过病毒特征字符串的长度,预设字符串长度可以根据实际需要进行设定,例如,可以设定为病毒特征字符串的长度的1/3或者1/2等等。
具体的,从病毒特征字符串中选择预设字符串长度的连续字符串,该预设字符串长度的连续字符串即为字符子串。例如,病毒特征字符串为“abcde”,预设字符串长度为3,则可以得到以下字符子串:“abc”、“bcd”、“cde”。
S205,对所述字符子串中字符对应的字节的概率值进行求和,得到对应于所述多个字符子串中每个字符子串的总概率值。
具体的,通过步骤S201的查找已经确定了病毒特征字符串中每个字符对应的字节的概率值,在步骤S205中,以每个字符子串为计算单位,将每个字符子串中字符对应的字节的概率值相加求和,从而得到每个字符子串对应的总概率值。
S207,将所述多个字符子串中总概率值最小的字符子串确定为所述病毒特征字符串的第一特征子串。
即本说明书实施例中将病毒特征字符串中出现概率最小的字符子串作为第一特征子串。
在一个具体的实施例中,为了在进行病毒特征匹配时能够让目标文件最先与病毒特征字符串中的第一特征子串进行匹配,在确定了第一特征子串之后,还可以进行比对优先级的设置,也即设置所述第一特征子串的比对优先级高于第二特征子串,并按照比对优先级由高至低对第一特征子串和第二特征子串进行排列,得到调整后的病毒特征字符串,当原始的病毒特征库中的所有病毒特征字符串都经过调整后即可以得到调整后的病毒特征库。其中,第二特征子串为病毒特征字符串中除上述第一特征子串之外的连续字符串。
如图4所示的包含第一特征子串的病毒特征字符串,该病毒特征字符串的长度为L(假设病毒特征字符串的最后一个字符为L),第一特征子串开始于第M个字符处、结束于第M+N个字符处,也即该第一特征子串的长度为N。第二特征子串包括由第一特征子串间隔的两个特征子串,分别为开始于首个字符0处、结束于第M个字符处的[0,M]段字符串即第三特征子串,以及开始于第M+N个字符处、结束于第L个字符处的[M+N,L]段字符串即第四特征子串。
实际应用中,在对目标文件进行病毒扫描时,可以通过数据指针定位目标文件中的当前数据位置,如图4中所示目标文件中的当前数据位置X,并将被定位数据与病毒特征字符串进行比对,该被定位数据与病毒特征字符串的长度相同,在比对时,首先将被定位数据中的[X,X+N]数据段与第一特征子串进行比对,并在二者相匹配即被定位数据中的[X,X+N]数据段与第一特征子串相一致的情况下执行步骤S105。
S105,在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对。
具体的,在将目标文件与病毒特征字符串的第二特征子串进行比对时,可以先将目标文件中除对应于第一特征子串的数据之外的数据确定为待检测数据,可以理解的该待检测数据包括由对应于第一特征子串的数据隔开的第一待检测数据和第二待检测数据;假设第一待检测数据与第三特征子串相对应,第二待检测数据与第四特征子串相对应,则可以将该第一待检测数据与第三特征子串进行比对,并在第一待检测数据包括第三特征子串的情况下,将第二待检测数据与第四特征子串进行比对。
需要说明的是,本说明实施例中,在将目标文件与第一特征子串相比对,以及目标文件与第二特征子串相比对时,所采用的具体比对方法可以但不限于包括KMP算法、BM算法、AC算法等等。
其中,KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此称它为克努特-莫里斯-普拉特操作,简称KMP算法。KMP算法的关键是利用匹配失败后的信息,尽量减少病毒特征字符串与目标文件的匹配次数以达到快速匹配的目的。
BM算法,即Boyer-Moore字符串搜索算法,该算法采用了尾部比较的方法,具体来说就是:目标文件与病毒特征字符串头部对齐,从病毒特征字符串尾部开始搜索,然后直接从尾部比较。
AC算法,即Aho–Corasick算法,该算法主要依靠构造一个有限状态机(类似于在一个trie树中添加失配指针)来实现。这些额外的失配指针允许在查找字符串失败时进行回退(例如设Trie树的单词cat匹配失败,但是在Trie树中存在另一个单词cart,失配指针就会指向前缀ca),转向某前缀的其他分支,免于重复匹配前缀,提高算法效率。
S107,根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
本说明书实施例中,当比对结果为目标文件包括第二特征子串时,表明目标文件与整个病毒特征字符串相匹配,也即目标文件中存在病毒特征字符串,此时可以确定目标文件为病毒文件。
在一个具体的实施例中,当上述第一待检测数据包括第三特征子串,且第二待检测数据包括第四特征子串时,可以确定比对结果为目标文件包括第二特征子串,确定该目标文件为病毒文件。
由本发明实施例的上述技术方案可见,本发明实施例通过将目标文件与病毒特征字符串中满足预设条件的第一特征子串进行比对,在目标文件包括该第一特征子串的情况下,才将目标文件与病毒特征字符串中除第一特征子串之外的第二特征子串进行比对,并根据与该第二特征子串的比对结果来确定目标文件是否为病毒文件,从而可以在第一次比对(即与第一特征子串的比对)中最大概率的过滤掉不匹配的情况,避免了剩余的特征子串(即第二特征子串)参与后续的匹配过程,进而加速了病毒的特征匹配,缩短了病毒特征匹配的耗时,有利于提高病毒查杀的效率。
下面结合图4,对本发明实施例的上述技术方案进行详细说明,如图5所示的另一种文件的病毒检测方法的流程示意图,该方法可以包括:
S501,在目标文件的当前数据位置X处开始,将被定位数据中的[X,X+N]数据段与第一特征子串进行比对。
其中,目标文件的当前数据位置X为数据指针所指的目标文件中的数据位置,在目标文件的整个病毒扫描过程中,数据指针从目标文件的数据首部开始移动到该目标文件的数据尾部;该被定位数据与病毒特征字符串的长度相同,如图4中包括数据段A、[X,X+N]数据段和数据段B。
具体的,当被定位数据中的[X,X+N]数据段与第一特征子串的比对结果为二者相匹配即相一致时,表明目标文件包括第一特征子串,此时可以执行步骤S503;当被定位数据中的[X,X+N]数据段与第一特征子串的比对结果为二者不匹配,则执行步骤S509。
S503,在目标文件的数据位置X+N处开始,将数据段A与[M+N,L]特征子串进行比对。
具体的,若比对结果为数据段A与[M+N,L]特征子串相匹配即二者相一致,则表明目标文件包括[M+N,L]特征子串,此时可以执行步S505。若比对结果为数据段A与[M+N,L]特征子串不匹配,则执行步骤S509。
S505,在目标文件的数据位置X-M处开始,将数据段B与[0,M]特征子串进行比对。
具体的,若比对结果为数据段B与[0,M]特征子串相匹配即二者相一致,则表明目标文件包括了整个病毒特征字符串,可以执行步骤S507,确定该目标文件为病毒文件,结束;若比对结果为数据段B与[0,M]特征子串不匹配,则执行步骤S509。
S507,确定目标文件为病毒文件。
S509,判断当前数据位置X与第一特征子串的长度N之和是否超过目标文件的数据尾部,在判断的结果为否时,执行步骤S511;在判断的结果为是时,执行步骤S513。
S511,按照预设滑动距离滑动数据指针到目标文件的下一个数据位置,并将目标文件的下一个数据位置作为当前数据位置X,再次执行步骤S501。
其中,预设滑动距离可以与比对过程中所涉及的具体的比对方法相对应,该预设滑动距离可以但不限于包括一个字符、两个字符等等。
S513,确定目标文件不包括病毒特征字符串,目标文件不是病毒文件,结束。
综上,本发明实施例通过将目标文件首先与第一特征子串进行比对,并在二者的比对结果为目标文件包括该第一特征子串时,才将目标文件与病毒特征字符串中的剩余特征子串进行比对,从而在第一次比对(即与第一特征子串的比对)过程中就可以最大概率的过滤掉不匹配的情况,避免了与相应剩余特征子串的继续比对,加速了病毒的特征匹配,有效缩短了病毒特征匹配的耗时,提高了病毒查杀效率。
与上述几种实施例提供的文件的病毒检测方法相对应,本发明实施例还提供一种文件的病毒检测装置,由于本发明实施例提供的文件的病毒检测装置与上述几种实施例提供的文件的病毒检测方法相对应,因此前述文件的病毒检测方法的实施方式也适用于本实施例提供的文件的病毒检测装置,在本实施例中不再详细描述。
请参阅图6,其所示为本发明实施例提供的一种文件的病毒检测装置的结构示意图,该装置具有实现上述方法实施例中文件的病毒检测方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图6所示,该装置可以包括:
第一获取模块610,用于获取目标文件;
第一比对模块620,用于将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;
第二比对模块630,用于在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;
病毒检测模块640,用于根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
在一个具体的实施例中,上述满足预设条件的连续字符串包括多个特征子串中总概率值最小的特征子串;
相应的,如图7提供的另一种文件的病毒检测装置的结构示意图,该装置还可以包括:
第一确定模块650,用于基于字节概率库,确定所述病毒特征字符串中字符对应的字节的概率值;
第二确定模块660,用于按照预设字符串长度,确定所述病毒特征字符串所包含的多个字符子串;
计算模块670,用于对所述字符子串中字符对应的字节的概率值进行求和,得到对应于所述多个字符子串中每个字符子串的总概率值;
第三确定模块680,用于将所述多个字符子串中总概率值最小的字符子串确定为所述病毒特征字符串的第一特征子串。
可选的,第一确定模块650可以包括:
第四确定模块,用于确定所述目标文件的文件类型;
第五确定模块,用于确定所述字节概率库中与所述病毒特征字符串中字符对应的字节相匹配的目标字节;
第六确定模块,用于基于字节概率库中目标字节、文件类型和概率值的对应关系,确定与所述目标文件的文件类型相匹配的目标对应关系;
第二获取模块,用于获取所述目标对应关系中的概率值,将所述目标对应关系中的概率值作为所述字符对应的字节的概率值。
在另一个具体的实施例中,该装置还可以包括:
第三获取模块,用于获取不同文件类型的样本文件;
第七确定模块,用于确定同一文件类型的样本文件中同一字节的出现次数,以及所述同一文件类型的样本文件的所有字节出现的总次数;
第八确定模块,确定所述同一字节的出现次数与所述所有字节出现的总次数的比值,得到概率值;
对应关系建立模块,用于建立所述字节、文件类型与概率值的对应关系;
创建模块,用于基于所述字节、文件类型与概率值的对应关系创建所述字节概率库。
在另一个具体的实施例中,该装置还可以包括:
优先级设置模块,用于设置所述第一特征子串的比对优先级高于所述第二特征子串;
调整模块,用于按照比对优先级由高至低对所述第一特征子串和第二特征子串进行排列,得到调整后的所述病毒特征字符串。
可选的,第二特征子串包括由所述第一特征子串隔开的第三特征子串和第四特征子串;
相应的,第二比对模块630可以包括:
第九确定模块,用于将所述目标文件中除对应于所述第一特征子串的数据之外的数据确定为待检测数据;所述待检测数据包括由对应于所述第一特征子串的数据隔开的第一待检测数据和第二待检测数据;
第一比对子模块,用于将所述第一待检测数据与所述第三特征子串进行比对;
第二比对子模块,在所述第一待检测数据包括所述第三特征子串的情况下,将所述第二待检测数据与所述第四特征子串进行比对。
可选的,病毒检测模块640,具体用于在所述比对结果为所述第二待检测数据包括所述第四特征子串时,确定所述目标文件为病毒文件。
需要说明的是,本发明实施例的文件的病毒检测装置可以部署于终端,也可以部署于服务器,或者在终端和服务器上联合部署。上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。在另一个具体的实施例中,文件的病毒检测装置联合部署在终端和服务器上,如图8提供的另一种文件的病毒检测装置的结构示意图,该装置包括:样本库810、概率统计模块820、字节概率库830、原始病毒特征库840、特征调整模块850、调整后病毒特征库860和特征匹配模块870,其中,样本库810、概率统计模块820、字节概率库830、原始病毒特征库840、特征调整模块850和调整后特征库860部署在服务器侧,特征匹配模块870部署在终端侧。具体的:
样本库810中存储有海量的不同文本类型的样本文本;概率统计模块820可以包括前述的第三获取模块、第七确定模块、第八确定模块、对应关系建立模块和创建模块,以实现相应模块的功能;字节概率库830与概率统计模块820相关联,用于存储字节、文件类型和概率值的对应关系;原始病毒特征库840用于存储不同病毒的病毒特征字符串;特征调整模块850可以包括前述的第一确定模块650、第二确定模块660、计算模块670、第三确定模块680,以及优先级设置模块和调整模块,以实现相应模块的功能;调整后病毒特征库860用于存储调整后的病毒特征字符串;特征匹配模块870可以包括前述的第一获取模块610、第一比对模块620、第二比对模块630和病毒检测模块640,以实现相应模块的功能。
另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的文件的病毒检测装置通过将目标文件首先与第一特征子串进行比对,并在二者的比对结果为目标文件包括该第一特征子串时,才将目标文件与病毒特征字符串中的剩余特征子串进行比对,从而在第一次比对(即与第一特征子串的比对)过程中就可以最大概率的过滤掉不匹配的情况,避免了与相应剩余特征子串的继续比对,加速了病毒的特征匹配,有效缩短了病毒特征匹配的耗时,提高了病毒查杀效率。
本发明实施例提供了一种终端,该终端包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的文件的病毒检测方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及文件的病毒检测。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在终端上为例,图9是本发明实施例提供的运行一种文件的病毒检测方法的终端的硬件结构框图,具体来讲:
终端900可以包括RF(Radio Frequency,射频)电路910、包括有一个或一个以上计算机可读存储介质的存储器920、输入单元930、显示单元940、传感器950、音频电路960、WiFi(wireless fidelity,无线保真)模块970、包括有一个或者一个以上处理核心的处理器980、以及电源90等部件。本领域技术人员可以理解,图9中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器980处理;另外,将涉及上行的数据发送给基站。通常,RF电路910包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端900的使用所创建的数据(比如视频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器920还可以包括存储器控制器,以提供处理器980和输入单元930对存储器920的访问。
输入单元930可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元930可包括图像输入设备931以及其他输入设备932。图像输入设备931可以是摄像头,也可以是光电扫描设备。除了图像输入设备931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及终端900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元940可包括显示面板941,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板941。
终端900可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在终端900移动到耳边时,关闭显示面板941和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路960、扬声器961,传声器962可提供用户与终端900之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910以发送给比如另一终端,或者将音频数据输出至存储器920以便进一步处理。音频电路960还可能包括耳塞插孔,以提供外设耳机与终端900的通信。
WiFi属于短距离无线传输技术,终端900通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于终端900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是终端900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行终端900的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器980可包括一个或多个处理核心;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
终端900还包括给各个部件供电的电源90(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源90还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端900还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,终端900还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述方法实施例提供的文件的病毒检测方法的指令。
本发明的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于终端之中以保存用于实现一种文件的病毒检测方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的文件的病毒检测方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种文件的病毒检测方法,其特征在于,所述方法包括:
获取目标文件;
将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;
在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;
根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
2.根据权利要求1所述的文件的病毒检测方法,其特征在于,所述满足预设条件的连续字符串包括多个特征子串中总概率值最小的特征子串;所述方法还包括:
基于字节概率库,确定所述病毒特征字符串中字符对应的字节的概率值;
按照预设字符串长度,确定所述病毒特征字符串所包含的多个字符子串;
对所述字符子串中字符对应的字节的概率值进行求和,得到对应于所述多个字符子串中每个字符子串的总概率值;
将所述多个字符子串中总概率值最小的字符子串确定为所述病毒特征字符串的第一特征子串。
3.根据权利要求2所述的文件的病毒检测方法,其特征在于,所述基于字节概率库,确定所述病毒特征字符串中字符对应的字节的概率值包括:
确定所述目标文件的文件类型;
确定所述字节概率库中与所述病毒特征字符串中字符对应的字节相匹配的目标字节;
基于字节概率库中目标字节、文件类型和概率值的对应关系,确定与所述目标文件的文件类型相匹配的目标对应关系;
获取所述目标对应关系中的概率值,将所述目标对应关系中的概率值作为所述字符对应的字节的概率值。
4.根据权利要求2所述的文件的病毒检测方法,其特征在于,所述方法还包括:
获取不同文件类型的样本文件;
确定同一文件类型的样本文件中同一字节的出现次数,以及所述同一文件类型的样本文件的所有字节出现的总次数;
确定所述同一字节的出现次数与所述所有字节出现的总次数的比值,得到概率值;
建立所述字节、文件类型与概率值的对应关系;
基于所述字节、文件类型与概率值的对应关系创建所述字节概率库。
5.根据权利要求2所述的文件的病毒检测方法,其特征在于,在将所述多个字符子串中总概率值最小的字符子串确定为所述病毒特征字符串的第一特征子串之后,所述方法还包括:
设置所述第一特征子串的比对优先级高于所述第二特征子串;
按照比对优先级由高至低对所述第一特征子串和第二特征子串进行排列,得到调整后的所述病毒特征字符串。
6.根据权利要求1所述的文件的病毒检测方法,其特征在于,所述第二特征子串包括由所述第一特征子串隔开的第三特征子串和第四特征子串;
所述将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对包括:
将所述目标文件中除对应于所述第一特征子串的数据之外的数据确定为待检测数据;所述待检测数据包括由对应于所述第一特征子串的数据隔开的第一待检测数据和第二待检测数据;
将所述第一待检测数据与所述第三特征子串进行比对;
在所述第一待检测数据包括所述第三特征子串的情况下,将所述第二待检测数据与所述第四特征子串进行比对。
7.根据权利要求6所述的文件的病毒检测方法,其特征在于,所述根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测包括:
当所述比对结果为所述第二待检测数据包括所述第四特征子串时,确定所述目标文件为病毒文件。
8.一种文件的病毒检测装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标文件;
第一比对模块,用于将所述目标文件与病毒特征字符串中的第一特征子串进行比对;所述第一特征子串为所述病毒特征字符串中满足预设条件的连续字符串;
第二比对模块,用于在所述目标文件包括所述第一特征子串的情况下,将所述目标文件与所述病毒特征字符串中的第二特征子串进行比对;所述第二特征子串为所述病毒特征字符串中除所述第一特征子串之外的连续字符串;
病毒检测模块,用于根据与所述第二特征子串的比对结果,对所述目标文件进行病毒检测。
9.一种终端,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1~7中任一项所述的文件的病毒检测方法。
10.一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1~7任一项所述的文件的病毒检测方法。
CN201910749584.5A 2019-08-14 2019-08-14 一种文件的病毒检测方法、装置、终端及存储介质 Pending CN111177721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910749584.5A CN111177721A (zh) 2019-08-14 2019-08-14 一种文件的病毒检测方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910749584.5A CN111177721A (zh) 2019-08-14 2019-08-14 一种文件的病毒检测方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN111177721A true CN111177721A (zh) 2020-05-19

Family

ID=70650058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910749584.5A Pending CN111177721A (zh) 2019-08-14 2019-08-14 一种文件的病毒检测方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN111177721A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051569A (zh) * 2021-03-31 2021-06-29 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113434860A (zh) * 2021-07-22 2021-09-24 安天科技集团股份有限公司 病毒检测方法、装置、计算设备及存储介质
CN116738428A (zh) * 2023-08-14 2023-09-12 苏州浪潮智能科技有限公司 一种文件动态病毒检测方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593611A (zh) * 2013-11-05 2014-02-19 安一恒通(北京)科技有限公司 一种快速识别病毒的方法和装置
CN108334778A (zh) * 2017-12-20 2018-07-27 北京金山安全管理系统技术有限公司 病毒检测方法、装置、存储介质及处理器
CN109657469A (zh) * 2018-12-07 2019-04-19 腾讯科技(深圳)有限公司 一种脚本检测方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593611A (zh) * 2013-11-05 2014-02-19 安一恒通(北京)科技有限公司 一种快速识别病毒的方法和装置
CN108334778A (zh) * 2017-12-20 2018-07-27 北京金山安全管理系统技术有限公司 病毒检测方法、装置、存储介质及处理器
CN109657469A (zh) * 2018-12-07 2019-04-19 腾讯科技(深圳)有限公司 一种脚本检测方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051569A (zh) * 2021-03-31 2021-06-29 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113051569B (zh) * 2021-03-31 2024-05-28 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113434860A (zh) * 2021-07-22 2021-09-24 安天科技集团股份有限公司 病毒检测方法、装置、计算设备及存储介质
CN116738428A (zh) * 2023-08-14 2023-09-12 苏州浪潮智能科技有限公司 一种文件动态病毒检测方法、装置、电子设备和存储介质
CN116738428B (zh) * 2023-08-14 2023-11-10 苏州浪潮智能科技有限公司 一种文件动态病毒检测方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN106095458B (zh) 一种应用程序中插件的管理方法和装置
EP3591940A1 (en) Mirror image distribution method, and mirror image acquisition method and apparatus
CN111177721A (zh) 一种文件的病毒检测方法、装置、终端及存储介质
CN106708554B (zh) 程序运行方法及装置
CN111258407B (zh) 应用功能的控制方法及相关产品
CN108762798B (zh) 一种增量更新文件的方法及装置
CN103246847B (zh) 一种宏病毒查杀的方法和装置
CN103455330A (zh) 应用程序管理方法、终端、设备及系统
JP2019502190A (ja) 情報プッシュ方法、デバイス及びシステム並びにコンピュータ記憶媒体
CN104516888A (zh) 多维数据的权限查询方法及装置
CN106502824A (zh) 数据备份方法及云服务器
CN104580177A (zh) 资源提供方法、装置和系统
CN107452361B (zh) 歌曲分句方法及装置
JP6915074B2 (ja) メッセージ通知方法及び端末
US20090077665A1 (en) Method and applications for detecting computer viruses
CN114860677A (zh) 关于终端设备的文件去冗方法、终端设备及存储介质
CN111273955A (zh) 热修复插件优化方法、装置、存储介质及电子设备
CN112913267B (zh) 资源处理方法、装置、终端、服务器和可读存储介质
CN105577712B (zh) 一种文件上传方法、装置和系统
CN108958854B (zh) 窗口显示方法、装置及终端
CN105025064A (zh) 下载文件的方法、装置及系统
CN107038414B (zh) 一种指纹模板同步方法及设备
CN111210299B (zh) 一种单号生成及管理方法及装置
CN109240986B (zh) 一种日志处理方法、装置及存储介质
CN109831771B (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