病毒扫描系统及其方法

文档序号:6558188阅读:709来源:国知局
专利名称:病毒扫描系统及其方法
技术领域
本发明涉及一种病毒扫描系统及其方法。
背景技术
目前,计算机及其软件技术得到了极大的发展,出现了基于Windows、Mac OS、Linux、Unix、Solaris等系统的PC。然而随之而来的是病毒的出现,这些病毒既可以通过网络也可以通过中间传输媒介进入计算机系统中。由于病毒侵入到计算机系统中,轻者降低系统性能,重者可使系统瘫痪,更为严重者可导致重要信息资料的丢失与泄露。这些病毒的表现形式一般可分为二种,一种是文件感染病毒,即病毒码附着到文件中;而另一种是病毒以独立文件形式存在,其可影响系统操作与性能,或者对其它文件产生不利影响。
另外,随着手机技术的发展,出现了智能手机。在这种手机中,嵌入了基于Symbian OS、Windows Mobile、Palm OS、Linux等操作系统,从而可以完成计算机的功能,如上网、传送文件或计算等。也因此出现了与计算机相同的问题,即受到软件病毒的困扰。而在手机病毒中,又多以独立文件形式存在的病毒居多。
现有技术中,表征病毒特征的方式多种多样,例如比较常见的有特征码及偏移量或者二者的函数的形式。总之,只要能唯一表征该病毒特征即可。
鉴于病毒的危害,目前出现了大量的杀毒软件。现有技术中普遍采用的杀毒技术是a)在病毒库中存有n个病毒的特征码及其偏移量;b)从病毒库中取出第一个病毒的特征码及其偏移量;c)按照该偏移量计算待扫描文件的特征码;d)将待扫描文件的特征码和从病毒库中取出的特征码进行比对;e)如果匹配则此文件已中毒,如果不匹配则从病毒库中取下一个病毒的特征码及其偏移量。
f)重复b)到e)的步骤,直到确定此文件中毒或已取完病毒库中所有的病毒特征码及偏移量。
g)如果取完病毒库中所有的病毒特征码及偏移量,则此文件无毒。
也就是说,现有技术中普遍采用的是根据每提取的病毒样本的病毒特征来相应地计算文件的病毒特征,从而进行判断。然而,这种病毒扫描技术存在一些问题。随着硬件的发展,存储文件的数量数以百万千万计。假设病毒库中共有n个病毒的特征码,将需要对被扫描文件重复计算n次特征码,假如针对一个病毒所需要的计算被扫描文件特征码的时间为m秒,那么每扫描一个文件将需要m*n秒,而这对于数以百万千万计的文件而言,其占用的时间成本是非常大的。由此可见,按照传统的方法扫描,扫描时间过长,效率低下,且由于长时间的运行扫描程序,极大地增加了耗电量,而这对于特别象手机这种对耗电量十分敏感的设备而言是非常严重的。

发明内容
为此,本发明希望提出一种通过减少重复计算的次数来大大缩短扫描时间,进而降低扫描程序耗电量的病毒扫描系统与方法,以优化传统的扫描技术。
根据本发明的一个方面,提出一种快速病毒扫描系统,包括计算单元,用于按照预定方式计算文件的病毒特征;病毒确定装置,用于将所述计算的病毒特征与病毒样本的病毒特征进行对比以确定所述文件是否为病毒文件。
根据本发明的另一个方面,提出一种快速病毒扫描方法,包括(a)按照预定方式计算文件的病毒特征;(b)将所计算的病毒特征与病毒样本的病毒特征进行对比以确定该文件是否为病毒。
由此可以看出,本发明省去了传统技术中每提取一次病毒样本的病毒特征都要重新计算被扫描文件的病毒特征的重复过程,从而达到缩短扫描时间的目的。以病毒特征码和偏移量为例,假设计算被扫描文件特征码的时间为m秒,病毒库中共有n个病毒的特征码,那么本发明每扫描一个文件将节省m*(n-1)秒的时间,而这种大大缩短时间的意义还在于极大地降低了程序的耗电量。而且还可以看到,本发明对任何操作系统平台均是透明的,即适用于基于Symbian OS、Windows Mobile、Palm OS、Linux等系统的移动设备,以及基于Windows、Mac OS、Linux、Unix、Solaris等系统的PC。


本发明的上述目标和优点可通过下面结合附图的优选实施例的描述而变得更加清楚,其中图1是根据本发明第一实施例的病毒扫描系统的方框图;图2是根据本发明的快速病毒扫描方法的流程图;图3是根据本发明第二实施例的病毒扫描系统的方框图。
具体实施例方式
下面结合附图具体描述本发明的一个实施例,在本实施例中,采用表征病毒的特征码与偏移量作为示例予以说明。
如图1所示,根据本发明的病毒扫描系统包括计算单元1,用于按照预定方式计算待扫描文件的病毒特征,在本实施例中计算该文件的偏移量与特征码;病毒数据库2,用于存储多个病毒样本;以及病毒确定装置3,用于通过对比文件的病毒特征与病毒样本的病毒特征来确定待扫描文件是否为病毒文件。
在本实施例中,计算单元1可由偏移量计算单元11与特征码计算单元12组成。具体地,计算单元1首先提取文件系统中的一个文件,按照一定的偏移量计算其特征码。以待扫描文件A为例,偏移量计算单元11首先将文件A划分成M份,并将指示每一份的开始的起始位置信息作为该文件的偏移量。例如,假设文件A的长度为11932字节,并将文件分割为四份,则可设定每份的第一个字节的位置信息为偏移量,从而可得到该文件A的四个偏移量0x00000000、0x00000BA7、0x0000174E以及0x000022F5。
这里需要指出的是,作为偏移量的位置信息并不仅限定于每份的开始的位置,也可以是该份中其它位置的信息,例如,也可将第三个字节的位置信息作为偏移量。
在确定文件A的偏移量的基础上,由所述特征码计算单元12计算每份的特征码。例如,在将每份的第一个字节的位置信息作为偏移量的基础上,选取每份的前16个字节(不足16个字节则用0补足16位),然后,对这四份字节串分别计算CRC校验和,例如可计算其CRC32校验和,将这四个CRC32校验和作为该文件的特征码。下面在表1中示出了按照上述方法得到文件A的四个偏移量、四个字节串及对应的CRC32校验和,分别为

病毒数据库2用于存储多个已知的病毒样本VS1,VS2,…,每个病毒样本包括病毒名称、病毒特征码以及相应的偏移量等信息。这里的病毒特征码是按照CRC32校验和事先计算得到的;同样病毒的偏移量也是按照与上述文件偏移量相同的计算方式事先得到的。也就是说,对文件的病毒特征码与偏移量的计算方式与数据库中预先存储的病毒样本的病毒特征码与偏移量的计算方式应当是相同的。
需要指出的是,这里对特征码的计算方式同样不局限于实施例中采用的CRC32校验和,例如也可采用业界已知的计算文件MD5值等其它方式作为特征码。
病毒确定装置3将计算得到的文件的病毒特征码、偏移量与病毒数据库3中存储的每一个病毒样本的病毒特征码和相应偏移量进行对比,如果与其中一个病毒样本的病毒特征码与偏移量均匹配,则认为该文件是一个病毒文件;否则认为是没有感染病毒。
下面参照图2的流程图详细说明按照该实施例的病毒扫描过程。
首先,计算单元从存储在例如手机中的文件系统中提取一个文件,然后在步骤S1通过计算单元1计算该文件的特征码和偏移量,然后进到步骤S2;在步骤S2,病毒确定装置3从病毒数据库2中提取第一个病毒样本VS1的病毒特征码与偏移量;然后在步骤S3,将由上述计算得到的文件特征码与偏移量与提取的病毒样本VS1的病毒特征码与偏移量分别进行对比;如果特征码与病毒特征码以及偏移量与病毒偏移量均匹配,则判定该文件为病毒文件;如果二者之中任何一项不匹配,则前进到步骤S4。在步骤S4判断当前的病毒样本是否为数据库中的最后一条病毒样本;如果是,则判断该文件不是病毒文件;否则前进到步骤S5,提取下一个病毒的特征码及偏移量并重复上述比较过程。
正如背景技术所讨论的,由于表征病毒的特征的方式多种多样,因此在实施本发明时,可以利用计算装置1计算这些表征方式中任何一种,例如计算F(特征码,偏移量),其中F(.)为特征码与偏移量的函数,如图3所示,并由病毒确定装置3将其与病毒数据库中病毒样本进行对比,从而达到扫描病毒的目的。
尽管上面通过优选实施例的形式对本发明予以说明,但本发明并不限于这些实施例,本领域人员可在上述公开的基础做出各种变更与修改,因此本发明的保护范围应以所附的权利要求为准。
权利要求
1.一种病毒扫描方法,包括(a)按照预定方式计算文件的病毒特征;(b)将所计算的病毒特征与病毒样本的病毒特征进行对比以确定该文件是否为病毒。
2.如权利要求1的病毒扫描方法,其中所述病毒特征是特征码与偏移量的函数。
3.如权利要求2的病毒扫描方法,其中所述步骤(a)包括(a1)将文件划分为多份,将每一份中的预定部分的位置信息设为所述文件的偏移量;(a2)计算从所述预定部分位置开始的预定长度内容的特征,作为所述特征码。
4.如权利要求3的病毒扫描方法,所述病毒样本的病毒特征码与偏移量是按照所述预定方式事先得到并且存储在数据库中。
5.如权利要求4的病毒扫描方法,所述步骤(b)包括搜索数据库中的每一个病毒样本,当其病毒特征码与偏移量与所计算的文件的病毒特征码与偏移量匹配时,则确定该文件为病毒文件。
6.如权利要求1-5的病毒扫描方法,其中所述特征码为CRC校验和或MD5值。
7.如权利要求6的病毒扫描方法,其中所述CRC校验和包括CRC32或CRC16校验和。
8.一种病毒扫描系统,包括计算单元,用于按照预定方式计算文件的病毒特征病毒确定装置,用于将所述计算的病毒特征与病毒样本的病毒特征进行对比以确定所述文件是否为病毒文件。
9.如权利要求8的病毒扫描系统,其中所述病毒特征是特征码与偏移量的函数。
10.如权利要求9的病毒扫描系统,进一步包括一个存储有多个病毒样本的病毒数据库,这些病毒样本至少包括按照所述预定方式事先得到的病毒特征码和偏移量;其中所述病毒确定装置将所计算的文件的病毒特征码和偏移量与病毒数据库中的每个病毒样本的病毒特征码与偏移量进行比较。
11.如权利要求10的病毒扫描系统,其中所述计算单元包括偏移量计算单元,用于计算所述文件的偏移量;特征码计算单元,用于按照所计算的偏移量计算所述特征码。
12.如权利要求11的病毒扫描系统,其中所述偏移量计算单元将文件划分为多份,将每一份中的预定位置设为所述文件的偏移量;以及所述特征码计算单元计算从所述预定位置开始的预定长度内容的特征,作为所述特征码。
13.如权利要求8-12中任一项的病毒扫描系统,其中所述特征码包括CRC校验和或MD5值。
14.如权利要求13的病毒扫描系统,其中所述CRC校验和包括CRC32或CRC16校验和。
全文摘要
本发明公开一种病毒扫描系统及其方法,包括计算单元,用于按照预定方式计算文件的病毒特征;病毒确定装置,用于将所述计算的病毒特征与病毒样本的病毒特征进行对比以确定所述文件是否为病毒文件。根据本发明的病毒扫描技术,可以大大缩短扫描文件所需要的时间,因而同时降低了程序耗电量。本发明可以适用于目前所有操作平台。
文档编号G06F21/56GK101017523SQ200610075458
公开日2007年8月15日 申请日期2006年4月14日 优先权日2006年4月14日
发明者任砚涛 申请人:北京瑞星国际软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1