首页> 中国专利> 一种文件扫描方法、文件扫描装置及文件检测系统

一种文件扫描方法、文件扫描装置及文件检测系统

摘要

本发明实施例公开了一种文件扫描方法、文件扫描装置及文件检测系统,以解决再次扫描所需时间比较长的问题。所述一种文件扫描方法包括:获取待扫描文件的当前属性信息;访问本地缓存数据库,判断所述本地缓存数据库中是否存在所述待扫描文件的已扫描特征信息;若存在,则解析所述已扫描特征信息得到已扫描属性信息,并判断所述已扫描属性信息与所述当前属性信息是否一致;若一致,则读取所述已扫描特征信息作为所述待扫描文件的当前特征信息;若不一致,则通过所述当前属性信息计算所述待扫描文件的当前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。本发明可以减少再次扫描时获取同一文件特征的时间,提高了文件扫描的速度。

著录项

  • 公开/公告号CN102982121A

    专利类型发明专利

  • 公开/公告日2013-03-20

    原文格式PDF

  • 申请/专利号CN201210451286.6

  • 发明设计人 刘智锋;孔庆龙;

    申请日2012-11-12

  • 分类号G06F17/30(20060101);

  • 代理机构11319 北京润泽恒知识产权代理有限公司;

  • 代理人苏培华

  • 地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)

  • 入库时间 2024-02-19 17:47:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-26

    专利权的转移 IPC(主分类):G06F17/30 专利号:ZL2012104512866 登记生效日:20220713 变更事项:专利权人 变更前权利人:北京奇虎科技有限公司 变更后权利人:北京奇虎科技有限公司 变更事项:地址 变更前权利人:100088 北京市西城区新街口外大街28号D座112室(德胜园区) 变更后权利人:100015 北京市朝阳区酒仙桥路6号院2号楼1至19层104号内8层801 变更事项:专利权人 变更前权利人:奇智软件(北京)有限公司 变更后权利人:

    专利申请权、专利权的转移

  • 2015-11-11

    授权

    授权

  • 2013-04-17

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20121112

    实质审查的生效

  • 2013-03-20

    公开

    公开

说明书

技术领域

本发明实施例涉及扫描技术领域,具体涉及一种文件扫描方法、文件扫 描装置及文件检测系统。

背景技术

随着计算机的普及,服务端和用户端都需要对计算机内的文件进行扫描 从而及时发现病毒等恶意软件。但是在进行扫描的时候,需要大量的CPU 运算和磁盘操作,扫描过程漫长而且影响系统的速度。在这些扫描的文件中, 有许多文件都是相同的,例如Windows的文件、帮助文件、压缩文件和很多 软件的安装包文件等。

目前现有技术中对上述具有相同特征的文件进行扫描时,第一次会全盘 扫描计算机内所有的文件,并且会扫描文件的所有内容,因此对于包括内容 比较多的文件,其扫描的时耗费的时间相当长,占用的资源也相当多,从而 导致第一次扫描的时间非常长。而第一次扫描之后的再次扫描也需要重新获 取这些特征,以至于扫描速度仍然很慢。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分 地解决上述问题的一种文件扫描方法、文件扫描装置及文件检测系统和相应 的文件检测系统。

根据本发明的一个方面,提供了一种文件扫描方法,包括:

获取待扫描文件的当前属性信息;

访问本地缓存数据库,判断本地缓存数据库中是否存在待扫描文件的已 扫描特征信息;

若存在,则解析已扫描特征信息得到已扫描属性信息,并判断已扫描属 性信息与当前属性信息是否一致;

若一致,则读取已扫描特征信息作为待扫描文件的当前特征信息;若不 一致,则通过当前属性信息计算待扫描文件的当前特征信息,并存入本地缓 存数据库作为下次扫描的已扫描特征信息。

本发明实施例中,还包括:若本地缓存数据库中不存在待扫描文件的已 扫描特征信息,则通过当前属性信息计算待扫描文件的当前特征信息,并存 入本地缓存数据库作为下次扫描的已扫描特征信息。

本发明实施例中,还包括:监控待扫描文件,当待扫描文件进行修改操 作时,对本地缓存数据库中待扫描文件的已扫描特征信息设置无效标志。

本发明实施例中,读取已扫描特征信息作为待扫描文件的当前特征信息 之前,还包括:判断待扫描文件的已扫描特征信息是否包含无效标志,若不 包含无效标志,则读取已扫描特征信息作为待扫描文件的当前特征信息;若 包含无效标志,则通过当前属性信息计算待扫描文件的当前特征信息,并存 入本地缓存数据库作为下次扫描的已扫描特征信息。

本发明实施例中,获取待扫描文件的当前属性信息包括:

读取待扫描文件的路径;

根据待扫描文件的路径获取待扫描文件的当前属性信息。

本发明实施例中,访问本地缓存数据库包括:

根据待扫描文件的路径生成键值,并依据键值访问本地缓存数据库;其 中,本地缓存数据库以键值为访问索引。

本发明实施例中,待扫描文件的当前属性信息包括:文件的大小、文件 的最后修改时间和文件的创建时间;

待扫描文件的已扫描特征信息包括:属性信息和特征值,特征值通过属 性信息计算得到。

根据本发明的另一方面,提供了一种文件扫描装置,包括:

属性获取模块,适于获取待扫描文件的当前属性信息;

判断模块,适于访问本地缓存数据库,判断本地缓存数据库中是否存在 待扫描文件的已扫描特征信息;若存在,则解析已扫描特征信息得到已扫描 属性信息,并判断已扫描属性信息与当前属性信息是否一致;

读取模块,适于当已扫描属性信息与当前属性信息一致时,读取已扫描 特征信息作为待扫描文件的当前特征信息;

计算模块,适于当已扫描属性信息与当前属性信息不一致时,通过当前 属性信息计算待扫描文件的当前特征信息,并存入本地缓存数据库作为下次 扫描的已扫描特征信息。

本发明实施例中,计算模块还适于:当本地缓存数据库中不存在待扫描 文件的已扫描特征信息时,通过当前属性信息计算待扫描文件的当前特征信 息,并存入本地缓存数据库作为下次扫描的已扫描特征信息。

本发明实施例中,还包括:监控模块,适于监控待扫描文件,当待扫描 文件进行修改操作时,对本地缓存数据库中待扫描文件的已扫描特征信息设 置无效标志。

本发明实施例中,判断模块还适于读取已扫描特征信息作为待扫描文件 的当前特征信息之前,判断待扫描文件的已扫描特征信息是否包含无效标 志;

读取模块还适于待扫描文件的已扫描特征信息不包含无效标志时,读取 已扫描特征信息作为待扫描文件的当前特征信息;

计算模块还适于待扫描文件的已扫描特征信息包含无效标志时,通过当 前属性信息计算待扫描文件的当前特征信息,并存入本地缓存数据库作为下 次扫描的已扫描特征信息。

本发明实施例中,属性获取模块包括:

路径读取子模块,适于读取待扫描文件的路径;

信息获取子模块,适于根据待扫描文件的路径获取待扫描文件的当前属 性信息。

本发明实施例中,待扫描文件的当前属性信息包括:文件的大小、文件 的最后修改时间和文件的创建时间;

待扫描文件的已扫描特征信息包括:属性信息和特征值,特征值通过属 性信息计算得到。

根据本发明的另一方面,提供了一种文件检测系统,包括:

主界面模块,适于对封装模块发起文件扫描操作,并指定待扫描文件;

封装模块,适于调用扫描模块;

扫描模块,适于扫描待扫描文件并调用数据库操作模块获取所述待扫描 文件的特征信息;

数据库操作模块,适于读取所述待扫描文件的特征信息。

本发明实施例中,还包括:

驱动模块,适于监控所述待扫描文件,当所述待扫描文件进行修改操作 时,将包含所述待扫描文件进行的修改操作的文件修改消息发送至所述消息 服务模块;

消息服务模块,适于接收所述驱动模块发送的文件修改消息,并将所述 文件修改消息发送至所述数据库操作模块;

所述数据库操作模块,还适于接收所述消息服务模块发送的文件修改消 息,并依据所述文件修改消息对该文件对应的数据库文件设置无效标志。

与现有技术相比,本发明包括以下优点:

首先,本发明实施例通过访问本地缓存数据库,判断所述本地缓存数据 库中是否存在所述待扫描文件的已扫描特征信息,在本地缓存数据库中存在 待扫描文件的已扫描特征信息且与当前属性信息一致时,直接读取缓存数据 库中的已扫描特征信息作为所述待扫描文件的当前特征信息,而不需要再次 通过当前属性信息计算当前特征信息,从而可以减少再次扫描时获取同一文 件特征的时间,大大提高了文件扫描的速度,节约了系统资源。

其次,本发明实施例即使本地缓存数据库中不存在待扫描文件的已扫描 特征信息或者在本地缓存数据库中存在待扫描文件的已扫描特征信息且与 当前属性信息不一致时,在本次扫描的时候通过当前属性信息计算所述待扫 描文件的当前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描 特征信息,这样对该文件进行再次扫描的时候,就可以直接从缓存数据库中 找到该文件的特征信息了,可以加速再次扫描的进度。

最后,本发明实施例监控所述待扫描文件,当所述待扫描文件进行修改 操作时,对所述本地缓存数据库中待扫描文件的已扫描特征信息设置无效标 志。也就是说,一旦文件发生了修改操作,例如,写操作、或者属性进行了 修改,就对本地缓存数据库中存储的待扫描文件的已扫描特征信息设置一个 无效标志,代表该已扫描特征信息已经失效,下次进行扫描的时候,需要通 过所述当前属性信息重新计算所述待扫描文件的当前特征信息,并存入所述 本地缓存数据库作为下次扫描的已扫描特征信息。避免了文件内容发生变化 而文件的大小相同,且文件的最后修改时间及文件的创建时间也改为相同的 情况下,如果只判断已扫描属性信息与当前属性信息一致,就直接读取缓存 数据库中的已扫描特征信息作为所述待扫描文件的当前特征信息的错误操 作。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技 术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本 领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示 相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种文件扫描方法的流程图;

图2示出了根据本发明一个实施例的另一种文件扫描方法的流程图;

图3示出了根据本发明一个实施例的一种文件扫描装置的结构框图;

图4示出了根据本发明一个实施例的另一种文件扫描装置的结构框图;

图5示出了根据本发明一个实施例的一种文件检测系统的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例可以应用到木马云查杀的扫描引擎中,该引擎可以结合安 全相关的产品使用,包括杀毒软件,主动防御系统和其他的利用服务器查杀 相关软件中。本发明实施例可以应用于计算机系统/服务器,其可与众多其它 通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使 用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机 系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微 处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机 系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等 等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令 (诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、 目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定 的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布 式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分 布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统 存储介质上。

实施例一:

参照图1,示出了本发明实施例的一种文件扫描方法的流程图,本实施 例具体可以包括以下步骤:

S101,获取待扫描文件的当前属性信息。

本实施例中所述获取待扫描文件的当前属性信息包括:

读取待扫描文件的路径;

根据所述待扫描文件的路径获取待扫描文件的当前属性信息。

具体地,首先可以通过遍历待扫描文件目录,从所述待扫描文件目录中 提取待扫描文件的路径;其次可以通过待扫描文件的路径找到待扫描文件; 最后读取待扫描文件的当前属性信息。本实施例中待扫描文件的当前属性信 息包括:文件的大小、文件的最后修改时间和文件的创建时间。

例如,待扫描文件的路径为C:\program files\msn gaming zone\windows\rvsezm.exe,依据此路径,就可以从C盘中找到待扫描文件 rvsezm.exe,然后读取待扫描文件的当前属性信息,具体包括文件的大小: 41.5KB、文件的最后修改时间:2009年8月10日,10:11:21和/或文件的创 建时间:2004年8月17日,20:00:00。

S102,访问本地缓存数据库。

本地缓存数据库中中保存有已扫描文件的特征信息,具体的,所述特征 信息包括属性信息和特征值,属性信息包括上述文件的大小、文件的最后修 改时间和文件的创建时间,特征值通过属性信息计算得到,例如通过文件的 大小、文件的最后修改时间和文件的创建时间计算出全文信息-摘要算法 (MD5,message-digest algorithm 5),全文安全哈希算法(SHA1,Secure Hash Algorithm)等特征值。

本实施例中可以根据所述待扫描文件的路径生成键值,并依据所述键值 访问本地缓存数据库;其中,所述本地缓存数据库以键值为访问索引。

需要说明的是,在文件扫描过程中,获取特征值是非常重要的一步。之 后需要根据所述特征值判断文件的安全级别。

S103,判断所述本地缓存数据库中是否存在所述待扫描文件的已扫描特 征信息。

依据步骤S102中的描述,本地缓存数据库中保存有已扫描文件的特征 信息,在本实施例中已扫描文件的含义是之前进行过扫描,对于待扫描文件 来说,其也有可能在此次扫描之前进行过扫描,对于此次扫描而言该文件为 待扫描文件,对于下次扫描而言该文件为已扫描文件。

在步骤S103中需要判断本地缓存数据库中是否存在该待扫描文件的已 扫描特征信息,如果本地缓存数据库中存在该待扫描文件的已扫描特征信 息,说明该文件在此次扫描之前进行过扫描,此次扫描为再次扫描,执行步 骤S104解析所述已扫描特征信息得到已扫描属性信息;如果本地缓存数据 库中不存在该待扫描文件的已扫描特征信息,说明该待扫描文件在此次扫描 之前没有进行过扫描,此次扫描为第一次扫描,执行步骤S107通过所述当 前属性信息计算所述待扫描文件的当前特征信息,并存入所述本地缓存数据 库作为下次扫描的已扫描特征信息。这样第一次扫描的文件计算得到的特征 信息就作为已扫描特征信息存储到缓存数据库中了,该文件进行再次扫描的 时候,就可以从缓存数据库中找到该文件的已扫描特征信息了。

S104,当本地缓存数据库中存在所述待扫描文件的已扫描特征信息时, 解析所述已扫描特征信息得到已扫描属性信息。

特征信息包含属性信息和特征值,在步骤S104中解析已扫描特征信息 就可以得到已扫描属性信息,也就是文件的大小、文件的最后修改时间和文 件的创建时间,这些已扫描属性信息是存储在缓存数据库中的。

S105,判断所述已扫描属性信息与所述当前属性信息是否一致,若一致, 执行步骤S106,若不一致,则执行步骤S107。

将步骤S101中获取的待扫描文件的当前属性信息和步骤S104中得到的 已扫描属性信息进行比对,判断上述当前属性信息和已扫描属性信息是否一 致,具体地,判断上述当前属性信息和已扫描属性信息包含的文件的大小是 否一致、文件的最后修改时间是否一致、文件的创建时间是否一致。只有上 述文件的大小、文件的最后修改时间和文件的创建时间三者都一致,才判定 已扫描属性信息与当前属性信息一致,只要上述三者有一者不一致,都判定 已扫描属性信息与当前属性信息不一致。

S106,读取所述已扫描特征信息作为所述待扫描文件的当前特征信息。

举例来说:扫描A.exe文件并获取全文MD5。

第一次扫描时,需完整读取A.exe的内容,然后计算出A.exe文件内容 的MD5,并存入数据库。

第二次扫描时,如果A.exe的文件大小、文件最后修改时间、文件创建 时间没有变化,且文件没有发生过写操作,那么直接从数据库中获取A.exe 的MD5值。

当所述已扫描属性信息与所述当前属性信息一致的时候,直接读取缓存 数据库中的已扫描特征信息作为所述待扫描文件的当前特征信息,而不需要 再通过当前属性信息重新进行特征值的计算,节省了获取特征值的时间,从 而节省了文件扫描所需的时间,进而加速了文件扫描的速度。

S107,通过所述当前属性信息计算所述待扫描文件的当前特征信息,并 存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

当所述已扫描属性信息与所述当前属性信息不一致的时候,说明该文件 很有可能进行了修改,因此不能直接读取缓存数据库中的已扫描特征信息作 为所述待扫描文件的当前特征信息,而需要通过所述当前属性信息计算所述 待扫描文件的当前特征信息,并存入所述本地缓存数据库作为下次扫描的已 扫描特征信息。

当然,如果步骤S103中判断本地缓存数据库中不存在所述待扫描文件 的已扫描特征信息,也需要通过所述当前属性信息计算所述待扫描文件的当 前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

首先,本实施例通过访问本地缓存数据库,判断所述本地缓存数据库中 是否存在所述待扫描文件的已扫描特征信息,在本地缓存数据库中存在待扫 描文件的已扫描特征信息且与当前属性信息一致时,直接读取缓存数据库中 的已扫描特征信息作为所述待扫描文件的当前特征信息,而不需要再次通过 当前属性信息计算当前特征信息,从而可以减少再次扫描时获取同一文件特 征的时间,大大提高了文件扫描的速度,不需要重新从磁盘读取文件的全部 内容,从而节省了重复读写磁盘文件所带来的系统资源消耗。其次,本实施 例即使本地缓存数据库中不存在待扫描文件的已扫描特征信息或者在本地 缓存数据库中存在待扫描文件的已扫描特征信息且与当前属性信息不一致 时,在本次扫描的时候通过当前属性信息计算所述待扫描文件的当前特征信 息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息,这样对该 文件进行再次扫描的时候,就可以直接从缓存数据库中找到该文件的特征信 息了,可以加速再次扫描的进度。

需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述 的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于 优选实施例,所涉及的动作并不一定是本申请所必需的。

实施例二:

参照图2,示出了本发明实施例的一种文件扫描方法的流程图,本实施 例具体可以包括以下步骤:

S201,获取待扫描文件的当前属性信息。

本实施例中,可以通过遍历待扫描文件目录,从所述待扫描文件目录中 提取待扫描文件的路径。然后可以通过待扫描文件的路径找到待扫描文件, 继而读取待扫描文件的当前属性信息。本实施例中待扫描文件的当前属性信 息包括:文件的大小、文件的最后修改时间和文件的创建时间。

例如,待扫描文件的路径为C:\program files\msn gaming zone\windows\rvsezm.exe,依据此路径,就可以从C盘中找到待扫描文件 rvsezm.exe,然后读取待扫描文件的当前属性信息,具体包括文件的大小: 41.5KB、文件的最后修改时间:2009年8月10日,10:11:21和/或文件的创 建时间:2004年8月17日,20:00:00。

S202,访问本地缓存数据库。

本地缓存数据中保存有已扫描文件的特征信息,具体的,所述特征信息 包括属性信息和特征值,属性信息包括上述文件的大小、文件的最后修改时 间和文件的创建时间,特征值通过属性信息计算得到,例如通过文件的大小、 文件的最后修改时间和文件的创建时间计算出全文MD5,SHA1等特征值。

本实施例中可以根据所述待扫描文件的路径生成键值,并依据所述键值 访问本地缓存数据库;其中,所述本地缓存数据库以键值为访问索引。

S203,判断所述本地缓存数据库中是否存在所述待扫描文件的已扫描特 征信息,若存在,则执行步骤S204,若不存在,则执行步骤S208。

依据步骤S202中的描述,本地缓存数据库中保存有已扫描文件的特征 信息,在本实施例中已扫描文件的含义是之前进行过扫描,对于待扫描文件 来说,其也有可能在此次扫描之前进行过扫描,对于此次扫描而言该文件为 待扫描文件,对于下次扫描而言该文件为已扫描文件。

在步骤S203中需要判断本地缓存数据库中是否存在该待扫描文件的已 扫描特征信息,如果本地缓存数据库中存在该待扫描文件的已扫描特征信 息,说明该文件在此次扫描之前进行过扫描,执行步骤S204解析所述已扫 描特征信息得到已扫描属性信息;如果本地缓存数据库中不存在该待扫描文 件的已扫描特征信息,说明该待扫描文件在此次扫描之前没有进行过扫描, 执行步骤S207通过所述当前属性信息计算所述待扫描文件的当前特征信 息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。这样第一 次扫描的文件计算得到的特征信息就作为已扫描特征信息存储到缓存数据 库中了,该文件进行再次扫描的时候,就可以从缓存数据库中找到该文件的 已扫描特征信息了。

S204,解析所述已扫描特征信息得到已扫描属性信息。

已扫描特征信息包含属性信息和特征值,在步骤S204中解析已扫描特 征信息就可以得到已扫描属性信息,也就是文件的大小、文件的最后修改时 间和文件的创建时间,这些已扫描属性信息是存储在缓存数据库中的。

S205,判断所述已扫描属性信息与所述当前属性信息是否一致,若一致, 执行步骤S206,若不一致,则执行步骤S208。

将步骤S201中获取的待扫描文件的当前属性信息和步骤S204中得到的 已扫描属性信息进行比对,判断上述当前属性信息和已扫描属性信息是否一 致,具体地,判断上述当前属性信息和已扫描属性信息包含的文件的大小是 否一致、文件的最后修改时间是否一致、文件的创建时间是否一致。只有上 述文件的大小、文件的最后修改时间和文件的创建时间三者都一致,才判定 已扫描属性信息与当前属性信息一致,只要上述三者有一者不一致,都判定 已扫描属性信息与当前属性信息不一致。

S206,判断所述待扫描文件的已扫描特征信息是否包含无效标志,若不 包含无效标志,则执行步骤S207,若包含无效标志,则执行步骤S208。

需要说明的是,即使步骤S205中判断已扫描属性信息与所述当前属性 信息包含的文件的大小一致、文件的最后修改时间一致和文件的创建时间都 一致,也不能确定文件没有进行过修改。因为文件的最后修改时间和文件的 创建时间是可以修改的,如果文件内容发生变化而文件的大小相同,且文件 的最后修改时间及文件的创建时间也改为相同,步骤S205中就会得到已扫 描属性信息与所述当前属性信息一致的结果,而很明显文件内容已经发生了 变化,因此本实施例监控所述待扫描文件,当所述待扫描文件进行修改操作 时,对所述本地缓存数据库中待扫描文件的已扫描特征信息设置无效标志。 也就是说,一旦文件发生了修改操作,例如,写操作、或者属性进行了修改, 就对本地缓存数据库中存储的待扫描文件的已扫描特征信息设置一个无效 标志,代表该已扫描特征信息已经失效,下次进行扫描的时候,需要执行步 骤S208,通过所述当前属性信息重新计算所述待扫描文件的当前特征信息, 并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

S207,读取所述已扫描特征信息作为所述待扫描文件的当前特征信息。

当所述已扫描属性信息与所述当前属性信息一致,且待扫描文件的已扫 描特征信息不包含无效标志的时候,直接读取缓存数据库中的已扫描特征信 息作为所述待扫描文件的当前特征信息,而不需要再通过当前属性信息重新 进行特征值的计算,节省了获取特征值的时间,其中文件特征值等内容描述 信息只占整个文件的很小一部分,当用户端扫描文件内容描述信息部分时, 所耗费时间远远小于扫描整个文件的时间,从而节省了文件扫描所需的时 间,进而加速了文件扫描的速度。

S208,通过所述当前属性信息计算所述待扫描文件的当前特征信息,并 存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

当所述已扫描属性信息与所述当前属性信息不一致,或者待扫描文件的 已扫描特征信息包含无效标志的时候,说明该文件进行了修改操作,因此不 能直接读取缓存数据库中的已扫描特征信息作为所述待扫描文件的当前特 征信息,而需要通过所述当前属性信息计算所述待扫描文件的当前特征信 息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

当然,如果步骤S203中判断本地缓存数据库中不存在所述待扫描文件 的已扫描特征信息,也需要通过所述当前属性信息计算所述待扫描文件的当 前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

需要说明的是,即使步骤S205中判断已扫描属性信息与所述当前属性 信息包含的文件的大小一致、文件的最后修改时间一致和文件的创建时间都 一致,也不能确定文件没有进行过修改。因为文件的最后修改时间和文件的 创建时间是可以修改的,如果文件内容发生变化而文件的大小相同,且文件 的最后修改时间及文件的创建时间也改为相同,步骤S205中就会得到已扫 描属性信息与所述当前属性信息一致的结果,而很明显文件内容已经发生了 变化。

因此在实施例一的基础上,本实施例二监控所述待扫描文件,当所述待 扫描文件进行修改操作时,对所述本地缓存数据库中待扫描文件的已扫描特 征信息设置无效标志。也就是说,一旦文件发生了修改操作,例如,写操作、 或者属性进行了修改,就对本地缓存数据库中存储的待扫描文件的已扫描特 征信息设置一个无效标志,代表该已扫描特征信息已经失效,下次进行扫描 的时候,需要执行步骤S208通过所述当前属性信息重新计算所述待扫描文 件的当前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征 信息。避免了文件内容发生变化而文件的大小相同,且文件的最后修改时间 及文件的创建时间也改为相同的情况下,如果只判断已扫描属性信息与当前 属性信息一致,就直接读取缓存数据库中的已扫描特征信息作为所述待扫描 文件的当前特征信息的错误操作。

需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述 的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于 优选实施例,所涉及的动作并不一定是本申请所必需的。

实施例三:

参照图3,示出了本发明实施例的一种文件扫描装置的结构框图,本实 施例具体可以包括以下模块:

属性获取模块301,适于获取待扫描文件的当前属性信息。

本实施例中上述属性获取模块301包括:

路径读取子模块,适于读取待扫描文件的路径;

信息获取子模块,适于根据所述待扫描文件的路径获取待扫描文件的当 前属性信息。

具体地,路径读取子模块可以通过遍历待扫描文件目录,从所述待扫描 文件目录中提取待扫描文件的路径,然后信息获取子模块可以通过待扫描文 件的路径找到待扫描文件,继而读取待扫描文件的当前属性信息。本实施例 中待扫描文件的当前属性信息包括:文件的大小、文件的最后修改时间和文 件的创建时间。

例如,路径读取子模块获取的待扫描文件的路径为C:\program files\msn gaming zone\windows\rvsezm.exe,信息获取子模块依据此路径,就可以从C 盘中找到待扫描文件rvsezm.exe,然后读取待扫描文件的当前属性信息,具 体包括文件的大小:41.5KB、文件的最后修改时间:2009年8月10日, 10:11:21和/或文件的创建时间:2004年8月17日,20:00:00。

判断模块302,适于访问本地缓存数据库,判断所述本地缓存数据库中 是否存在所述待扫描文件的已扫描特征信息;若存在,则解析所述已扫描特 征信息得到已扫描属性信息,并判断所述已扫描属性信息与所述当前属性信 息是否一致。

本地缓存数据中保存有已扫描文件的特征信息,具体的,所述特征信息 包括属性信息和特征值,属性信息包括上述文件的大小、文件的最后修改时 间和文件的创建时间,特征值通过属性信息计算得到,例如通过文件的大小、 文件的最后修改时间和文件的创建时间计算出全文MD5,SHA1等特征值。

在本实施例中已扫描文件的含义是之前进行过扫描,对于待扫描文件来 说,其也有可能在此次扫描之前进行过扫描,对于此次扫描而言该文件为待 扫描文件,对于下次扫描而言该文件为已扫描文件。

判断模块302需要判断本地缓存数据库中是否存在该待扫描文件的已扫 描特征信息,如果本地缓存数据库中存在该待扫描文件的已扫描特征信息, 说明该文件在此次扫描之前进行过扫描,因此解析所述已扫描特征信息得到 已扫描属性信息,并判断所述已扫描属性信息与所述当前属性信息是否一 致;若一致,则进入读取模块303,若不一致,则进入计算模块304。

本实施例中待扫描文件的已扫描特征信息包括:属性信息和特征值,所 述特征值通过所述属性信息计算得到。判断模块302解析已扫描特征信息就 可以得到已扫描属性信息,也就是可以得到文件的大小、文件的最后修改时 间和文件的创建时间,这些已扫描属性信息是存储在缓存数据库中的。

判断模块302将属性获取模块301获取的待扫描文件的当前属性信息和 访问本地缓存数据库得到的已扫描属性信息进行比对,判断上述当前属性信 息和已扫描属性信息是否一致,具体地,判断上述当前属性信息和已扫描属 性信息包含的文件的大小是否一致、文件的最后修改时间是否一致、文件的 创建时间是否一致。只有上述文件的大小、文件的最后修改时间和文件的创 建时间三者都一致,才判定已扫描属性信息与当前属性信息一致,只要上述 三者有一者不一致,都判定已扫描属性信息与当前属性信息不一致。

读取模块303,适于当所述已扫描属性信息与所述当前属性信息一致时, 读取所述已扫描特征信息作为所述待扫描文件的当前特征信息。

读取模块303当所述已扫描属性信息与所述当前属性信息一致的时候, 直接读取缓存数据库中的已扫描特征信息作为所述待扫描文件的当前特征 信息,而不需要再通过当前属性信息重新进行特征值的计算,节省了获取特 征值的时间,从而节省了文件扫描所需的时间,进而加速了文件扫描的速度。

计算模块304,适于当所述已扫描属性信息与所述当前属性信息不一致 时,通过所述当前属性信息计算所述待扫描文件的当前特征信息,并存入所 述本地缓存数据库作为下次扫描的已扫描特征信息。

当所述已扫描属性信息与所述当前属性信息不一致的时候,说明该文件 很有可能进行了修改,因此不能直接读取缓存数据库中的已扫描特征信息作 为所述待扫描文件的当前特征信息,而需要通过计算模块304计算所述待扫 描文件的当前特征信息,并存入所述本地缓存数据库作为下次扫描的已扫描 特征信息。这样第一次扫描的文件计算得到的特征信息就作为已扫描特征信 息存储到缓存数据库中了,该文件进行之后再进行扫描的时候,就可以从缓 存数据库中找到该文件的已扫描特征信息了。

在本实施例的一个优选实施例中,上述计算模块304还适于当所述本地 缓存数据库中不存在所述待扫描文件的已扫描特征信息时,通过所述当前属 性信息计算所述待扫描文件的当前特征信息,并存入所述本地缓存数据库作 为下次扫描的已扫描特征信息。

当然,如果判断模块302判断本地缓存数据库中不存在所述待扫描文件 的已扫描特征信息,也需要通过计算模块304计算所述待扫描文件的当前特 征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较 简单,相关之处参见图1方法实施例的部分说明即可。

实施例四:

参照图4,示出了本发明实施例的另一种文件扫描装置的结构框图,本 实施例具体可以包括以下模块:

属性获取模块401,适于获取待扫描文件的当前属性信息。

本实施例中上述属性获取模块401包括:

路径读取子模块,适于读取待扫描文件的路径;

信息获取子模块,适于根据所述待扫描文件的路径获取待扫描文件的当 前属性信息。

具体地,路径读取子模块可以通过遍历待扫描文件目录,从所述待扫描 文件目录中提取待扫描文件的路径,然后信息获取子模块可以通过待扫描文 件的路径找到待扫描文件,继而读取待扫描文件的当前属性信息。本实施例 中待扫描文件的当前属性信息包括:文件的大小、文件的最后修改时间和文 件的创建时间。

例如,路径读取子模块获取的待扫描文件的路径为C:\program files\msn gaming zone\windows\rvsezm.exe,信息获取子模块依据此路径,就可以从C 盘中找到待扫描文件rvsezm.exe,然后读取待扫描文件的当前属性信息,具 体包括文件的大小:41.5KB、文件的最后修改时间:2009年8月10日, 10:11:21和/或文件的创建时间:2004年8月17日,20:00:00。

判断模块402,适于访问本地缓存数据库,判断所述本地缓存数据库中 是否存在所述待扫描文件的已扫描特征信息;若存在,则解析所述已扫描特 征信息得到已扫描属性信息,并判断所述已扫描属性信息与所述当前属性信 息是否一致。

本地缓存数据中保存有已扫描文件的特征信息,具体的,所述特征信息 包括属性信息和特征值,属性信息包括上述文件的大小、文件的最后修改时 间和文件的创建时间,特征值通过属性信息计算得到,例如通过文件的大小、 文件的最后修改时间和文件的创建时间计算出全文MD5,SHA1等特征值。

上述判断模块402通过以下子模块访问本地缓存数据库:键值生成子模 块,适于根据所述待扫描文件的路径生成键值;

键值访问子模块,适于依据所述键值访问本地缓存数据库;

其中,所述本地缓存数据库以键值为访问索引。

在本实施例中已扫描文件的含义是之前进行过扫描,对于待扫描文件来 说,其也有可能在此次扫描之前进行过扫描,对于此次扫描而言该文件为待 扫描文件,对于下次扫描而言该文件为已扫描文件。

判断模块402需要判断本地缓存数据库中是否存在该待扫描文件的已扫 描特征信息,如果本地缓存数据库中存在该待扫描文件的已扫描特征信息, 说明该文件在此次扫描之前进行过扫描,因此解析所述已扫描特征信息得到 已扫描属性信息,并判断所述已扫描属性信息与所述当前属性信息是否一 致;若一致,则进入读取模块403,若不一致,则进入计算模块404。当然 如果本地缓存数据库中不存在该待扫描文件的已扫描特征信息,说明该待扫 描文件在此次扫描之前没有进行过扫描,也进入计算模块404通过所述当前 属性信息计算所述待扫描文件的当前特征信息,并存入所述本地缓存数据库 作为下次扫描的已扫描特征信息。这样第一次扫描的文件计算得到的特征信 息就作为已扫描特征信息存储到缓存数据库中了,该文件进行再次扫描的时 候,就可以从缓存数据库中找到该文件的已扫描特征信息了。

本实施例中待扫描文件的已扫描特征信息包括:属性信息和特征值,所 述特征值通过所述属性信息计算得到。判断模块402解析已扫描特征信息就 可以得到已扫描属性信息,也就是文件的大小、文件的最后修改时间和文件 的创建时间,这些已扫描属性信息是存储在缓存数据库中的。

判断模块402将属性获取模块401获取的待扫描文件的当前属性信息和 访问本地缓存数据库得到的已扫描属性信息进行比对,判断上述当前属性信 息和已扫描属性信息是否一致,具体地,判断上述当前属性信息和已扫描属 性信息包含的文件的大小是否一致、文件的最后修改时间是否一致、文件的 创建时间是否一致。只有上述文件的大小、文件的最后修改时间和文件的创 建时间三者都一致,才判定已扫描属性信息与当前属性信息一致,只要上述 三者有一者不一致,都判定已扫描属性信息与当前属性信息不一致。

需要说明的是,即使判断模块402判断已扫描属性信息与所述当前属性 信息包含的文件的大小一致、文件的最后修改时间一致和文件的创建时间都 一致,也不能确定文件没有进行过修改。因为文件的最后修改时间和文件的 创建时间是可以修改的,如果文件内容发生变化而文件的大小相同,且文件 的最后修改时间及文件的创建时间也改为相同,判断模块402中就会得到已 扫描属性信息与所述当前属性信息一致的结果,而很明显文件内容已经发生 了变化。

因此本实施例所述装置还包括:

监控模块405,适于监控所述待扫描文件,当所述待扫描文件进行修改 操作时,对所述本地缓存数据库中待扫描文件的已扫描特征信息设置无效标 志。

监控模块监控所述待扫描文件,当所述待扫描文件进行修改操作时,对 所述本地缓存数据库中待扫描文件的已扫描特征信息设置无效标志。也就是 说,一旦文件发生了修改操作,例如,写操作、或者属性进行了修改,就对 本地缓存数据库中存储的待扫描文件的已扫描特征信息设置一个无效标志, 代表该已扫描特征信息已经失效,下次进行扫描的时候,需要进入计算模块 404,通过所述当前属性信息重新计算所述待扫描文件的当前特征信息,并 存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

相应的,所述判断模块402,还适于读取已扫描特征信息作为所述待扫 描文件的当前特征信息之前,判断所述待扫描文件的已扫描特征信息是否包 含无效标志。

读取模块403,还适于所述待扫描文件的已扫描特征信息不包含无效标 志时,读取所述已扫描特征信息作为所述待扫描文件的当前特征信息。

当所述判断模块402判断已扫描属性信息与所述当前属性信息一致,且 待扫描文件的已扫描特征信息不包含无效标志的时候,直接读取缓存数据库 中的已扫描特征信息作为所述待扫描文件的当前特征信息,而不需要再通过 当前属性信息重新进行特征值的计算,节省了获取特征值的时间,从而节省 了文件扫描所需的时间,进而加速了文件扫描的速度。

计算模块404,还适于所述待扫描文件的已扫描特征信息包含无效标志 时,通过所述当前属性信息计算所述待扫描文件的当前特征信息,并存入所 述本地缓存数据库作为下次扫描的已扫描特征信息。

当所述已扫描属性信息与所述当前属性信息不一致,或者待扫描文件的 已扫描特征信息包含无效标志的时候,说明该文件进行了修改操作,因此不 能直接读取缓存数据库中的已扫描特征信息作为所述待扫描文件的当前特 征信息,而需要通过所述当前属性信息计算所述待扫描文件的当前特征信 息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。这样第一 次扫描的文件计算得到的特征信息就作为已扫描特征信息存储到缓存数据 库中了,该文件进行之后再进行扫描的时候,就可以从缓存数据库中找到该 文件的已扫描特征信息了。

当然,如果判断模块402判断本地缓存数据库中不存在所述待扫描文件 的已扫描特征信息,也需要通过计算模块404计算所述待扫描文件的当前特 征信息,并存入所述本地缓存数据库作为下次扫描的已扫描特征信息。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较 简单,相关之处参见图2方法实施例的部分说明即可。

实施例五:

参照图5,示出了本发明实施例的一种文件检测系统的结构框图,本实 施例具体可以包括以下模块:

主界面模块501,适于对封装模块发起文件扫描操作,并指定待扫描文 件;

在本实施例中主界面模块501指定的待扫描文件可以是一个文件,也可 以是多个文件。

封装模块502,适于调用扫描模块;

扫描模块503,适于扫描待扫描文件并调用数据库操作模块获取所述待 扫描文件的特征信息;

在本实施例中扫描模块503可以调用数据库操作模块504,数据库操作 模块504获取所述待扫描文件的特征信息。

数据库操作模块504,适于读取所述待扫描文件的特征信息。

在本实施例的一个优选实施例中,所述文件检测系统还包括:

驱动模块505,适于监控所述待扫描文件,当所述待扫描文件进行修改 操作时,将包含所述待扫描文件进行的修改操作的文件修改消息发送至所述 消息服务模块;

消息服务模块506,适于接收所述驱动模块发送的文件修改消息,并将 所述文件修改消息发送至所述数据库操作模块;

具体实现时,消息服务模块506可以调用驱动调用模块(图5未示出) 来调用驱动模块505得到文件修改消息。

所述数据库操作模块504,还适于接收所述消息服务模块发送的文件修 改消息,并依据所述文件修改消息对该文件对应的数据库文件设置无效标 志。

当所述数据库操作模块504依据所述文件修改消息对该文件对应的数据 库文件设置无效标志后,扫描模块503将无法成功获取所述待扫描文件的特 征信息,因为此时待扫描文件的特征信息已经失效,需要重新计算特征信息, 可以参见图4所示的装置实施例的相关描述。

对于系统实施例而言,由于其与装置实施例基本相似,所以描述的比较 简单,相关之处参见图4装置实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明 的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见 即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都 是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案, 但是由于篇幅限制,本说明书在此就不一一详述了。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固 有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定 编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本 发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未 详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个 或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时 被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开 的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求 中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映 的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循 具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利 要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其 它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组 合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权 利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使 用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理 器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当 理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据 本发明实施例的文件扫描装置中的一些或者全部部件的一些或者全部功能。 本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备 或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明 的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形 式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或 者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换 实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利 要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位 于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可 以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。 在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一 个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。 可将这些单词解释为名称。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号