检测和清除计算机宏病毒的方法和装置的制作方法

文档序号:6398322阅读:147来源:国知局
专利名称:检测和清除计算机宏病毒的方法和装置的制作方法
技术领域
本发明涉及计算机安全领域,具体涉及一种用于检测和清除计算机宏病毒的方法和装置。
背景技术
计算机病毒是在计算机程序中插入的破坏计算机功能的数据,其会影响计算机的正常使用,并且能够自我复制,计算机病毒通常以一组计算机指令或者程序代码的形式呈现。计算机病毒杀毒引擎是判断特定程序行为是否为病毒程序(或可疑程序)的技术机制。杀毒引擎是杀毒软件的主要部分,是检测和发现病毒的程序,而病毒库是已经发现的病毒的特征集合。在杀毒过程中,用病毒库中的特征去对照系统中的所有程序或文件,对于符合这些特征的程序或文件,即判定为病毒。宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言在文本处理程序中应用普遍,主要用来扩展文本处理程序的功能。例如,Microsoft Office就采用宏语言实现对表格进行动态计算、设计交互窗口等宏功能。但是,病毒制作者也可能利用宏语言功能强大、开发简单的优点,将其用于开发宏病毒。宏病毒是一种寄存在文档文件或文档模板文件的宏中的计算机病毒。一旦打开这样的文档文件或文档模板文件,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在文档模板上。从此以后,所有自动保存的文档文件都会感染上这种宏病毒,而且,如果其他用户打开了感染病毒的文档,宏病毒又会转移到其计算机上。由于宏病毒隐藏于数据文件内部,且其使用的脚本语法灵活多变,完成一个功能有很多种写法,因而识别一个文件是否包含有宏病毒非常困难。宏病毒感染、发作在先,而反病毒机制在后,并且宏语言是一种脚本,稍作修改即可产生变种,甚至可以在传播过程中对自身进行修改,每传播一次就变化一次,因此,现有的反病毒机制很难跟上宏病毒变化的速度,对未知宏病毒基本无检测能力,反病毒效果很差。

发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的检测和清除计算机宏病毒的方法和装置。依据本发明的一个方面,提供了一种检测和清除计算机宏病毒的方法,包括:遍历预先定义的目录,以识别文档模板文件;基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理;对于检测出病毒的文档模板文件,进行病毒清除处理;以及删除进行病毒清除处理后的文档模板文件。可选地,根据本发明的实施例的检测和清除计算机宏病毒的方法还包括:在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。可选地,根据本发明的实施例的检测和清除计算机宏病毒的方法还包括:基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理;对于检测出病毒的文档文件,进行病毒清除处理。可选地,根据本发明的实施例的检测和清除计算机宏病毒的方法还包括:在所述对于检测出病毒的文档模板文件进行病毒清除处理的步骤之前,将检测出病毒的文档模板文件备份到隔离区。可选地,根据本发明的实施例的检测和清除计算机宏病毒的方法还包括:在所述删除进行病毒清除处理后的文档模板文件的步骤之前,将进行病毒清除处理后的文档模板文件备份到隔离区。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的方法中,所述遍历预先定义的目录以识别文档模板文件的步骤包括:检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的方法中,所述基于包含已知宏病毒特征码的预先定义的病毒数据库对识别出的文档模板文件进行病毒检测处理的步骤包括:基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,判定该文档模板文件感染了宏病毒。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的方法中,所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的方法中,所述宏代码是VBA宏代码。依据本发明的另一方面,还提供了一种检测和清除计算机宏病毒的装置,包括:遍历模块,适于遍历预先定义的目录,以识别文档模板文件;病毒检测模块(203),适于基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理;病毒清除模块,适于对于检测出病毒的文档模板文件,进行病毒清除处理;以及删除模块,适于删除进行病毒清除处理后的文档模板文件。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述删除模块还适于在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述病毒检测模块还适于基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理;所述病毒清除模块还适于对于检测出病毒的文档文件,进行病毒清除处理。可选地,根据本发明的实施例的检测和清除计算机宏病毒的装置还包括备份模块,适于在所述病毒清除模块对于检测出病毒的文档模板文件进行病毒清除处理之前,将检测出病毒的文档模板文件备份到隔离区。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述备份模块还适于在所述删除模块删除进行病毒清除处理后的文档模板文件之前,将进行病毒清除处理后的文档模板文件备份到隔离区。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述遍历模块检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述病毒检测模块基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,判定该文档模板文件感染了宏病毒。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。可选地,在根据本发明的实施例的检测和清除计算机宏病毒的装置中,所述宏代码是VBA宏代码。本发明提供了上述检测和清除计算机宏病毒的方法和装置。根据本发明的实施例,可以遍历预先定义的目录以识别文档模板文件,并基于病毒数据库,对文档模板文件进行病毒检测和清除处理,并且删除病毒清除处理后的文档模板文件。由此,在现有的病毒扫描和清除机制中,增加了专用于文档模板文件的遍历和识别、病毒扫描、病毒清除处理,对已感染宏病毒的文档模板文件执行病毒清除和删除,并且可以对未检测出病毒、但存在潜在威胁的文档模板文件进行删除,从而从根本上解决了宏病毒在文档模板文件中传播、变种等问题,克服了现有的反病毒机制难以对宏病毒进行有效地扫描和清除的缺陷。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是根据本发明的实施例的清除计算机宏病毒的方法的流程图;以及图2是根据本发明的实施例的清除计算机宏病毒的装置的框图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本发明的原理适用于任何计算机操作系统,包括、但不限于:基于Windows、Linux、Mac OS、Unix等。本发明的原理适用于任何文档处理软件,包括、但不限于:Microsoft Office系列软件、金山WPS系列软件、Open Office系列软件等。在下文中,将以最常用的Windows操作系统下的Microsoft Office软件为例,对本发明的原理进行示例性地描述。然而,这只是为了以具体的示例描述本发明,以帮助读者理解本发明的原理,本发明的范围不限于此,而是可以适用于任何操作系统下的任何文档处理软件。在计算机中的文档模板文件或文档文件感染了宏病毒之后,宏病毒可能存在如下对计算机系统产生破坏的行为:1.修改注册表的行为,目的是降低安全等级设置或将释放的可执行文件写入开机启动项等;2.传播行为,即利用感染宏病毒的模板在文档处理软件的默认模板文件保存目录内传播病毒;3.感染行为:在用户打开未感染宏病毒的文件时,宏病毒会自动向该文件里复制,还会给用户的邮件联系人发送包括病毒文件的邮件等;4.发作时行为,例如包括:在某个时间段弹窗;重复复制工作表,影响软件正常使用;释放可执行文件,具体可以包括:创建文件、写文件、执行文件等等。通常可以按宏病毒所在的宿主,将宏病毒样本划分为寄存在Microsoft Office的Word 中的(仅 VBA (Visual Basic for Applications,用于应用程序的 Visual Basic)脚本)和寄存在Excel中的(包括VBA脚本、以及存在于工作表中的Macro4.0类型)宏病毒样本等种类。图1示意性地图示了根据本发明的实施例的清除计算机宏病毒的方法100的流程图。如图1所示,方法100始于步骤S101,其中,遍历预先定义的目录,以识别文档模板文件。根据本发明的实施例,所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。以Windows7操作系统下的Microsoft Office软件为例,对于Word,保存文档模板文件的默认目录可以是“C: \Users\Windows用户名\AppData\Roaming\Microsoft\Templates\”;而对于Excel,保存文档模板文件的默认目录可以是“C: \Users\ [Windows用户名\AppData\R oaming \Microsoft\Excel\xlstart”或者“Excel 安装目录\officell\xlstart”。然而,上述文档处理软件保存文档模板文件的默认目录仅为示例,保存文档模板文件的默认目录还可以是其它用户选择的目录。根据本发明的实施例,在上述步骤SlOl中,可以检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。可选地,所述宏代码是VBA宏代码。例如,在步骤SlOl的遍历过程中,可以利用Windows的API (Application
Programming Interface,应用程序编程接口)函数将上述目录中的所有文件--列举出
来,然后检测这些文件中是否包含VBA宏代码。以Word为例,可以读取Word文件(例如normal, dot),并在Word的Visual Basic编辑器中找到相应的VBA宏代码,此时,即可将该文件识别为文档模板文件。例如,如果在文件代码中发现字段“_pro ject_vba”,即可认为是VBA宏代码,并将该文件识别为文档模板文件。在步骤SlOl中,可选地,还可以对计算机的所有磁盘进行全盘扫描,找到所有文档文件,以Microsoft Office为例,文档文件的扩展名例如可以是.doc、.docx、.rtf>.xls、.xlsx、.xps、.ppt、.pptx等等。在找到计算机中的所有文档文件后,可以在对文档模板文件执行病毒扫描和清除处理之后,对这些文档文件也执行病毒扫描和清除处理,以彻底清除计算机文档文件中的宏病毒。如图1所示,在步骤SlOl之后,执行步骤S103,其中,基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理。例如,可以基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,判定该文档模板文件感染了宏病毒。在步骤S103中,例如可以采用德国Avira公司的Avira AntiVir引擎以及罗马尼亚SOFTWIN公司的BitDefender引擎来执行上述病毒检测处理,只要上述任一引擎检测到宏病毒,即可判定文档模板文件感染了宏病毒。如上所述,可选地,此时,还可以基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理。例如,可以基于所述已知宏病毒特征码,对计算机中的所有文档文件进行定位处理和匹配处理,在文档文件与已知宏病毒特征码匹配的情况下,判定该文档文件感染了宏病毒。例如,也可以采用德国Avira公司的Avira AntiVir引擎以及罗马尼亚SOFTWIN公司的BitDefender引擎来执行上述病毒检测处理,只要上述任一引擎检测到宏病毒,即可判定文档文件感染了宏病毒。如图1所示,在步骤S103之后,执行步骤S105,其中,对于检测出病毒的文档模板文件,进行病毒清除处理。可选地,在执行步骤S105中的病毒清除处理之前,可以备份检测出病毒的文档模板文件,例如备份到专门的隔离区,以在用户需要时对文档模板文件进行恢复。根据本发明的实施例,可以在每个磁盘的根目录下设置一个隔离区目录,例如“360Rec”,用于备份该磁盘中检测出病毒的文档模板文件。根据本发明的实施例,步骤S105中的病毒清除处理例如可以包括以下的一个或多个处理:修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块,即对特定区域进行数据块填充;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。根据本发明的实施例,在步骤S105中,仍可以例如采用上述Avira AntiVir引擎和BitDefender引擎来对文档模板文件进行病毒清除处理。某个文档模板文件可能包含多个宏病毒,其中的某个宏病毒可能只能被上述引擎中的一个清除成功,而同时采用两个引擎,可以提高清除成功的几率,而如果两个引擎都无法成功清除某个宏病毒,则需要在步骤S107中对感染了该宏病毒的文档模板文件进行删除处理。如上所述,可选地,此时,还可以利用上述引擎,对于计算机中检测出病毒的所有文档文件,进行上述病毒清除处理,以彻底清除计算机文档文件中的宏病毒。接下来,执行步骤S107,其中,删除进行病毒清除处理后的文档模板文件,可以调用操作系统的功能来执行删除,例如,可以调用Windows系统的API DeleteFile来删除病毒清除处理后的文档模板文件。可选地,在步骤S107之前,还可以备份进行病毒清除处理后的文档模板文件,例如备份到专门的隔离区,以在用户需要时对文档模板文件进行恢复。根据本发明的实施例,可以在每个磁盘的根目录下设置一个隔离区目录,例如“360Rec”,用于备份该磁盘中进行病毒清除处理后的文档模板文件。在执行了步骤S105中的病毒清除处理后,文档模板文件的数据很可能已经被破坏,导致用户打开例如Word或Excel之类的文档处理软件时总是出现错误提示,这样,无疑会对用户的操作带来不便,因此,有必要在病毒清除处理之后将文档模板文件删除。同时,在步骤S107的删除处理之前执行备份处理,又可以使用户在需要时恢复出至少不包含宏病毒的文档模板文件。根据本发明的实施例,上述方法100还可以包括以下步骤:在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。执行此步骤主要是出于这样的考虑:在计算机中有文档模板文件被检测出宏病毒的情况下,计算机中的其它文档模板文件也很有可能感染了宏病毒,即使在上述病毒检测处理中未检测出来。因此,也将未检测出病毒的文档模板文件删除,以确保计算机中不存在感染宏病毒的文档模板文件。可选地,也可以在执行此删除处理之前,将文档模板文件备份至隔离区,以在用户需要时进行恢复。本发明提供了上述检测和清除计算机宏病毒的方法。根据本发明的实施例,可以遍历预先定义的目录以识别文档模板文件,并基于病毒数据库,对文档模板文件进行病毒检测和清除处理,并且删除病毒清除处理后的文档模板文件。由此,在现有的病毒扫描和清除机制中,增加了专用于文档模板文件的遍历和识别、病毒扫描、病毒清除处理,对已感染宏病毒的文档模板文件执行病毒清除和删除,并且可以对未检测出病毒、但存在潜在威胁的文档模板文件进行删除,从而从根本上解决了宏病毒在文档模板文件中传播、变种等问题,克服了现有的反病毒机制难以对宏病毒进行有效地扫描和清除的缺陷。与上述方法100相对应,本发明还提供了一种检测和清除计算机宏病毒的装置200。图2示意性地图示了根据本发明的实施例的一种检测和清除计算机宏病毒的装置200的框图。如图2所示,装置200主要包括遍历模块201、病毒检测模块203、病毒清除模块205、删除模块207。根据本发明,遍历模块201,适于遍历预先定义的目录,以识别文档模板文件;病毒检测模块203,适于基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理;病毒清除模块205,适于对于检测出病毒的文档模板文件,进行病毒清除处理;以及删除模块207,适于删除进行病毒清除处理后的文档模板文件。首先,遍历模块201遍历预先定义的目录,以识别文档模板文件。根据本发明的实施例,所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。以Windows操作系统下的Microsoft Office软件为例,对于Word,保存文档模板文件的默认目录可以是“C: \Users\Windows 用户名\AppData\Roaming\Microsoft\Templates\”;而对于 Excel,保存文档模板文件的默认目录可以是“C: \Users\ [Windows用户名\AppData\Roaming\Microsoft\Excel\xlstart” 或者“Excel 安装目录\office 11 \xlstart”。然而,上述文档处理软件保存文档模板文件的默认目录仅为示例,保存文档模板文件的默认目录还可以是其它用户选择的目录。根据本发明的实施例,遍历模块201可以检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。可选地,所述宏代码是VBA宏代码。例如,在遍历过程中,遍历模块201可以利用Windows的API函数将上述目录中的所有文件一一列举出来,然后检测这些文件中是否包含VBA宏代码。以Word为例,遍历模块201可以读取Word文件(例如normal, dot),并在Word的Visual Basic编辑器中找到相应的VBA宏代码,此时,遍历模块201即可将该文件识别为文档模板文件。例如,如果在文件代码中发现字段“_pr0ject_Vba”,即可认为是VBA宏代码,并将该文件识别为文档模板文件。可选地,遍历模块201还可以对计算机的所有磁盘进行全盘扫描,找到所有文档文件,以Microsoft Office为例, 文档文件的扩展名例如可以是.doc、.docx、.rtf、.xls、.xlsx、.xps、.ppt、.pptx等等。在找到计算机中的所有文档文件后,可以在对文档模板文件执行病毒扫描和清除处理之后,对这些文档文件也执行病毒扫描和清除处理,以彻底清除计算机文档文件中的宏病毒。之后,病毒检测模块203基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理。例如,病毒检测模块203可以基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,病毒检测模块203判定该文档模板文件感染了宏病毒。例如,病毒检测模块203可以采用德国Avira公司的Avira AntiVir引擎以及罗马尼亚SOFTffIN公司的BitDefender引擎来执行上述病毒检测处理,只要上述任一引擎检测到宏病毒,病毒检测模块203即可判定文档模板文件感染了宏病毒。如上所述,可选地,此时,病毒检测模块203还可以基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理。例如,病毒检测模块203可以基于所述已知宏病毒特征码,对计算机中的所有文档文件进行定位处理和匹配处理,在文档文件与已知宏病毒特征码匹配的情况下,病毒检测模块203判定该文档文件感染了宏病毒。例如,病毒检测模块203也可以采用德国Avira公司的Avira AntiVir引擎以及罗马尼亚SOFTWIN公司的BitDefender引擎来执行上述病毒检测处理,只要上述任一引擎检测到宏病毒,病毒检测模块203即可判定文档文件感染了宏病毒。然后,病毒清除模块205对于检测出病毒的文档模板文件,进行病毒清除处理。可选地,所述装置200还可以包括备份模块,适于在病毒清除模块205执行病毒清除处理之前,备份检测出病毒的文档模板文件,例如备份到专门的隔离区,以在用户需要时对文档模板文件进行恢复。根据本发明的实施例,可以在每个磁盘的根目录下设置一个隔离区目录,例如“360Rec”,用于备份该磁盘中检测出病毒的文档模板文件。根据本发明的实施例,病毒清除模块205可以执行以下的一个或多个病毒清除处理:修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块,即对特定区域进行数据块填充;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。根据本发明的实施例,病毒清除模块205仍可以例如采用上述Avira AntiVir引擎和BitDefender引擎来对文档模板文件进行病毒清除处理。某个文档模板文件可能包含多个宏病毒,其中的某个宏病毒可能只能被上述引擎中的一个清除成功,而同时采用两个引擎,可以提高清除成功的几率,而如果两个引擎都无法成功清除某个宏病毒,则需要由删除模块207对感染了该宏病毒的文档模板文件进行删除处理。如上所述,可选地,此时,病毒清除模块205还可以利用上述引擎,对于计算机中检测出病毒的所有文档文件,进行上述病毒清除处理,以彻底清除计算机文档文件中的宏病毒。接下来,删除模块207删除进行病毒清除处理后的文档模板文件,删除模块207可以调用操作系统的功能来执行删除,例如,删除模块207可以调用Windows系统的APIDeleteFile来删除病毒清除处理后的文档模板文件。可选地,在删除模块207执行删除之前,所述备份模块还可以备份进行病毒清除处理后的文档模板文件,例如备份到专门的隔离区,以在用户需要时对文档模板文件进行恢复。根据本发明的实施例,可以在每个磁盘的根目录下设置一个隔离区目录,例如“360Rec”,用于备份该磁盘中进行病毒清除处理后的文档模板文件。在病毒清除模块205执行了病毒清除处理后,文档模板文件的数据很可能已经被破坏,导致用户打开例如Word或Excel之类的文档处理软件时总是出现错误提示,这样,无疑会对用户的操作带来不便,因此,删除模块207有必要在病毒清除处理之后将文档模板文件删除。同时,在删除模块207执行删除处理之前,所述备份模块可以执行备份处理,又可以使用户在需要时恢复出至少不包含宏病毒的文档模板文件。根据本发明的实施例,删除模块207还可以在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。删除模块207执行此处理主要是出于这样的考虑:在计算机中有文档模板文件被检测出宏病毒的情况下,计算机中的其它文档模板文件也很有可能感染了宏病毒,即使在上述病毒检测处理中未检测出来。因此,也将未检测出病毒的文档模板文件删除,以确保计算机中不存在感染宏病毒的文档模板文件。可选地,也可以在删除模块207执行此删除处理之前,由所述备份模块将文档模板文件备份至隔离区,以在用户需要时进行恢复。由于上述各装置实施例与前述各方法实施例相对应,因此不再对各设备实施例进行详细描述。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式
的权利要求书由此明确地并入该具体实施方式
,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种检测和清除计算机宏病毒的方法(100),包括: 遍历预先定义的目录,以识别文档模板文件(SlOl); 基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理(S103); 对于检测出病毒的文档模板文件,进行病毒清除处理(S105);以及 删除进行病毒清除处理后的文档模板文件(S107 )。
2.如权利要求1所述的方法,还包括: 在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。
3.如权利要求1所述的方法,还包括: 基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理; 对于检测出病毒的文档文件,进行病毒清除处理。
4.如权利要求1至3中的任一项所述的方法,还包括:在所述对于检测出病毒的文档模板文件进行病毒清除处理的步骤(S105)之前,将检测出病毒的文档模板文件备份到隔离区。
5.如权利要求1至3中的任一项所述的方法,还包括:在所述删除进行病毒清除处理后的文档模板文件的步骤(S107)之前,将进行病毒清除处理后的文档模板文件备份到隔离区。
6.如权利要求1至3中的任一项所述的方法,其中所述遍历预先定义的目录以识别文档模板文件的步骤(SlOl)包括:检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。
7.如权利要求1至3中的任一项所述的方法,其中所述基于包含已知宏病毒特征码的预先定义的病毒数据库对识别出的文档模板文件进行病毒检测处理的步骤(S103)包括:基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,判定该文档模板文件感染了宏病毒。
8.如权利要求1至3中的任一项所述的方法,其中所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。
9.如权利要求6所述的方法,其中所述宏代码是VBA宏代码。
10.一种检测和清除计算机宏病毒的装置(200),包括: 遍历模块(201),适于遍历预先定义的目录,以识别文档模板文件; 病毒检测模块(203),适于基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理; 病毒清除模块(205),适于对于检测出病毒的文档模板文件,进行病毒清除处理;以及 删除模块(207),适于删除进行病毒清除处理后的文档模板文件。
11.如权利要求10所述的装置,其中所述删除模块(207)还适于在有文档模板文件被检测出病毒的情况下,删除未检测出病毒的文档模板文件。
12.如权利要求10所述的装置,其中所述病毒检测模块(203)还适于基于所述预先定义的病毒数据库,对计算机中的文档文件进行病毒检测处理; 所述病毒清除模块(205)还适于对于检测出病毒的文档文件,进行病毒清除处理。
13.如权利要求10至12中的任一项所述的装置,还包括:备份模块,适于在所述病毒清除模块(205)对于检测出病毒的文档模板文件进行病毒清除处理之前,将检测出病毒的文档模板文件备份到隔离区。
14.如权利要求10至12中的任一项所述的装置,其中所述备份模块还适于在所述删除模块(207)删除进行病毒清除处理后的文档模板文件之前,将进行病毒清除处理后的文档模板文件备份到隔离区。
15.如权利要求10至12中的任一项所述的装置,其中所述遍历模块(201)检测所述预先定义的目录中的文件是否包含宏代码,并且将包含宏代码的文件识别为文档模板文件。
16.如权利要求10至12中的任一项所述的装置,其中所述病毒检测模块(203)基于所述已知宏病毒特征码,对所述文档模板文件进行定位处理和匹配处理,在所述文档模板文件与已知宏病毒特征码匹配的情况下,判定该文档模板文件感染了宏病毒。
17.如权利要求10至12中的任一项所述的装置,其中所述预先定义的目录是文档处理软件保存文档模板文件的默认目录。
18.如权利要求 15所述的装置,其中所述宏代码是VBA宏代码。
全文摘要
本发明公开了一种检测和清除计算机宏病毒的方法和装置。其中,所述方法包括步骤遍历预先定义的目录,以识别文档模板文件;基于包含已知宏病毒特征码的预先定义的病毒数据库,对识别出的文档模板文件进行病毒检测处理;对于检测出病毒的文档模板文件,进行病毒清除处理;以及删除进行病毒清除处理后的文档模板文件。根据本发明的实施例,从根本上解决了宏病毒在文档模板文件中传播、变种等问题,克服了现有的反病毒机制难以对宏病毒进行有效地扫描和清除的缺陷。
文档编号G06F21/56GK103150504SQ20131002493
公开日2013年6月12日 申请日期2013年1月23日 优先权日2013年1月23日
发明者谢重阳 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1