发明内容
基于此,有必要针对传统的文件扫描方式耗费计算机资源,降低扫描效率的问题,提供一种文件扫描方法和系统。
为实现本发明目的提供的一种文件扫描方法,包括如下步骤:
读取待扫描文件,获取所述待扫描文件的文件属性信息;
根据所述文件属性信息,查询预存的查杀结果信息中是否有与所述文件属性信息相匹配的第一查杀结果信息;
当所述预存的查杀结果信息中有所述第一查杀结果信息时,直接返回所述第一查杀结果信息。
在其中一个实施例中,所述根据所述文件属性信息,查询预存的查杀结果信息中是否有与所述文件属性信息相匹配的第一查杀结果信息,包括如下步骤:
发送查询本地缓存系统模块信号至本地缓存系统模块;
所述本地缓存系统模块接收到所述查询本地缓存系统模块信号后,根据所述文件属性信息,判断所述本地缓存系统模块是否预存有所述第一查杀结果信息。
在其中一个实施例中,当所述本地缓存系统模块中未预存有所述第一查杀结果信息时,还包括如下步骤:
发送文件查杀结果共享服务模块访问信号至共享服务访问模块;
所述共享服务访问模块接收并传输所述文件查杀结果共享服务模块访问信号至文件查杀结果共享服务模块;
所述文件查杀结果共享服务模块接收到所述文件查杀结果共享服务模块访问信号后,将所述文件属性信息与所述文件查杀结果共享服务模块中预存的所述查杀结果信息进行匹配,判断是否预存有所述第一查杀结果信息;
若是,则返回并存储所述第一查杀结果信息至所述本地缓存系统模块;
若否,则执行所述根据所述文件特征信息,扫描所述待扫描文件,获取并返回所述第一查杀结果信息的步骤。
在其中一个实施例中,还包括如下步骤:
当所述预存的查杀结果信息中没有所述第一查杀结果信息时,根据所述待扫描文件的文件特征信息,扫描所述待扫描文件,获取并返回所述第一查杀结果信息;
其中,所述文件特征信息包括所述待扫描文件的特征码。
在其中一个实施例中,所述根据所述待扫描文件的文件特征信息,扫描所述待扫描文件,获取并返回所述第一查杀结果信息,还包括如下步骤:
存储所述第一查杀结果信息至本地缓存系统模块,并上报所述第一查杀结果信息至文件查杀结果共享服务模块。
在其中一个实施例中,所述文件属性信息包括所述待扫描文件的分区、路径、名称和信息摘要,以及所述待扫描文件的文件大小、创建时间、修改时间和访问时间;
所述预存的查杀结果信息包括所述文件属性信息,病毒扫描判定结果,文件类型和上报所述查杀结果信息的客户端标识。
相应的,基于同一发明构思,本发明还提供了一种文件扫描系统,包括文件扫描代理模块和中心服务器;
所述文件扫描代理模块被配置以读取待扫描文件,获取所述待扫描文件的文件属性信息;
所述中心服务器被配置以根据所述文件属性信息,查询预存的查杀结果信息中是否有与所述文件属性信息相匹配的第一查杀结果信息;
所述中心服务器还被配置以当所述预存的查杀结果信息中有所述第一查杀结果信息时,直接返回所述第一查杀结果信息。
在其中一个实施例中,所述中心服务器包括本地缓存系统模块;
所述本地缓存系统模块与所述文件扫描代理模块通讯连接;
所述文件扫描代理模块包括第一发送单元;
所述第一发送单元,用于发送查询本地缓存系统模块信号至所述本地缓存系统模块;
所述本地缓存系统模块包括第一接收单元和第一查询单元;
所述第一接收单元,用于接收所述查询本地缓存系统模块信号;
所述第一查询单元,用于根据所述文件属性信息,查询所述本地缓存系统模块中是否预存有所述第一查杀结果信息。
在其中一个实施例中,所述中心服务器还包括共享服务访问模块和文件查杀结果共享服务模块;
所述文件查杀结果共享服务模块通过所述共享服务访问模块,与所述文件扫描代理模块通信连接;其中,
所述文件扫描代理模块包括第二发送单元;
所述第二发送单元,用于发送文件查杀结果共享服务模块访问信号至所述共享服务访问模块;
所述共享服务访问模块,用于接收并传输所述文件查杀结果共享服务模块访问信号至所述文件查杀结果共享服务模块;
所述文件查杀结果共享服务模块包括第二接收单元和第二查询单元;
所述第二接收单元,用于接收所述文件查杀结果共享服务模块访问信号;
所述第二查询单元,用于将所述文件属性信息与所述文件查杀结果共享服务模块中预存的所述查杀结果信息进行匹配,判断是否有所述第一查杀结果信息;
所述文件查杀结果共享服务模块还包括记录单元和跳转单元;
所述记录单元,用于所述文件查杀结果共享服务模块中预存有所述第一查杀结果信息时,存储所述第一查杀结果信息至所述本地缓存系统模块;
所述跳转单元,用于所述文件查杀结果共享服务模块中未预存有所述第一查杀结果信息时,跳转至所述传统扫描引擎模块,执行所述根据所述文件特征信息,扫描所述待扫描文件,获取并返回所述第一查杀结果信息的步骤。
在其中一个实施例中,还包括传统扫描引擎模块;
所述传统扫描引擎模块被配置以所述预存的查杀结果信息中不存在所述第一查杀结果信息时,根据所述待扫描文件的文件特征信息,扫描所述待扫描文件,获取并返回所述第一查杀结果信息;
其中,所述文件特征信息包括所述待扫描文件的特征码。
上述文件扫描方法的有益效果:
其在对待扫描文件进行扫描之前,首先通过读取待扫描文件,获取待扫描文件的文件属性信息后,根据获取的待扫描文件的文件属性信息,进行与该文件属性信息相匹配的第一查杀结果信息的查询操作。当查询到预存有相应的第一查杀结果信息时,则不需再对待扫描文件进行扫描,直接将查询到的第一查杀结果信息返回。其避免了对每台计算机中的每个文件均进行一次完整的扫描过程,因此节省了计算机资源,并且提高了扫描效率。
具体实施方式
为使本发明技术方案更加清楚,以下结合附图及具体实施例对本发明做进一步详细说明。
参见图1,作为本发明的文件扫描方法的一具体实施例,包括如下步骤:
步骤S100,读取待扫描文件,获取待扫描文件的文件属性信息。
步骤S200,根据文件属性信息,查询预存的查杀结果信息中是否有与文件属性信息相匹配的第一查杀结果信息。当查询到预存的查杀结果信息中有第一查杀结果信息时,则执行步骤S300,直接返回第一查杀结果信息。
其通过在对待扫描文件进行扫描之前,对待扫描文件的第一查杀结果信息进行查询,即根据获取的待扫描文件的文件属性信息,查询预存的查杀结果信息中是否预存有与该文件属性信息相匹配的第一查杀结果信息。当查询到预存有相应的第一查杀结果信息时,则不需再对待扫描文件进行扫描,直接将查询到的第一查杀结果信息返回。
也就是说,采用本发明的文件扫描方法,在每个计算机之间建立一种网络沟通方式,让防病毒软件可以知道对于这些计算机拥有的某些完全相同的文件。如果某个计算机扫描过了,其他计算机可以知道并且在扫描的时候可以自动使用第一个计算机扫描的结果,而无须自己亲自进行扫描。避免了对每台计算机中的每个文件均进行一次完整的扫描过程,因此节省了计算机资源,提高了扫描效率。并且,通过预存查杀结果信息,能够实现内置一些事先指定的文件的扫描结果(即查杀结果信息)的目的,进而防止了误报指定文件的现象。
如:当N台计算机分别包含相同的M个文件,那么在传统的文件扫描方式下,也就是文件磁盘读取的过程加上文件内容特征计算的过程,总计需要进行N×M次读取和计算的过程(即文件扫描过程)。而采用本发明的文件扫描方法,则只需要1×M次,也就是M次的文件扫描过程,因此节省了(N-1)×M次的扫描过程。当N值越大,扫描文件的扫描效果也就越明显。
同时,本发明的文件扫描方法不仅可以用于物理计算机的文件特征扫描,更可以应用于虚拟化系统中的文件特征扫描。并且,通过多次统计获得的平均值来看,可以减少对系统90%的磁盘读写,加快文件扫描速度达到10倍左右。对扫描引擎的扫描过程都能起到减少资源占用,并加速扫描的效果。
需要说明的是,参见图1,当查询到预存的查杀结果信息中并不存在第一查杀结果信息时,则执行步骤S400,根据待扫描文件的文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息。
另外,采用本发明的文件扫描方法,在对待扫描文件的第一查杀结果信息进行查询时,需要根据待扫描文件的文件属性信息,与预存的查杀结果信息进行匹配。当能够匹配上时,则表明预存有该待扫描文件相应的第一查杀结果信息,如不能匹配上,则表明没有预存待扫描文件的第一查杀结果信息。因此,需要引入待扫描文件的文件属性信息。
即,为了能够让计算机之间建立网络沟通,使用了待扫描文件的文件属性信息的概念。其中,文件属性信息包括计算机系统中的待扫描文件的各种属性加上其他信息,统称为文件基本属性信息。具体的:
文件属性信息包括完整的路径文件名称信息,主要指:待扫描文件所在的分区、路径、名称和信息摘要。其中,信息摘要是指把以上信息通过哈希算法获得一个碰撞概率很低的唯一值。哈希算法包括常用的md5、crc32或其他信息摘要算法。
文件属性信息还包括待扫描文件的其他属性,如:包括但不限于文件大小、创建时间、修改时间和访问时间等。
文件属性信息还包括传统引擎的状态属性,如:包括但不限于引擎的版本号、病毒特征库的版本号、出厂白名单的版本号等。
同时,预存的查杀结果信息则包括文件属性信息,病毒扫描判定结果、文件类型,以及上报查杀结果信息的客户端标识。也就是说,预存的查杀结果信息不但包括前面所提到的文件属性信息,还包括但不限于如下信息:
文件的病毒扫描判定结果,如:包括但不限于白名单、病毒、已扫描正常文件、用户自定义白名单、用户自定义黑名单。
文件的文件类型,如:包括但不限于可执行文件。
上报查杀结果信息的时间,以及上报查杀结果信息的客户端唯一标识,如:IP地址、计算机名称、mac地址等。
通过把每个扫描过的文件的上述查杀结果信息都进行集中保存,从而能够提供已知文件的查杀结果信息的查询服务,也可称之为文件查杀结果共享服务。
并且,还可通过维护大量的查杀结果信息,按照更新规则进行不断更新,使得网内文件的查杀结果信息不断趋向完整。其中,文件的查杀结果信息集合可称之为文件查杀结果信息共享缓存,简称文件查杀缓存。
需要指出的是,文件查杀缓存更新的规则包括但不限于如下:
使用最新的病毒库版本的文件扫描结果覆盖使用旧版本病毒库的扫描结果。以及,白名单的优先级定义,出厂白名单优先级高于用户定义白名单。
进一步的,参见图2,步骤S200,根据文件属性信息,查询预存的查杀结果信息中是否有与文件属性信息相匹配的第一查杀结果信息,包括如下步骤:
步骤S210,发送查询本地缓存系统信号至本地缓存系统模块。
步骤S220,本地缓存系统模块接收查询本地缓存系统信号后,根据文件属性信息,查询本地缓存系统模块中是否预存有第一查杀结果信息。若是,则执行步骤S300,直接返回第一查杀结果信息。若否,则可执行步骤S400,根据文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息。
其通过在进行文件扫描之前,首选执行待扫描文件的查询操作,在查询时则首选查询本地缓存系统模块中是否预存有该待扫描文件的第一查杀结果信息。如果本地缓存系统模块中预存有相应的第一查杀结果信息时,则直接返回查询到的第一查杀结果信息即可。不需要再进行待扫描文件的扫描,从而减少了扫描过程中占用的计算机资源,提高了网内文件的扫描速率。
并且,通过首先查询本地缓存系统模块,不需要通过网络传输方式进行待扫描文件的第一查杀结果信息的查询,优化了网络访问次数,减少了网络读写。
更进一步的,当本地缓存系统模块中未预存有第一查杀结果信息时,为了更进一步的节省计算机资源,提高文件的扫描速率,参见图3,作为本发明的文件扫描方法的又一具体实施例,当本地缓存系统模块中未预存有第一查杀结果信息时,在执行步骤S400,根据文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息之前,还包括如下步骤:
步骤S230,发送文件查杀结果共享服务模块访问信号至共享服务访问模块。
步骤S240,共享服务访问模块接收并传输文件查杀结果共享服务模块访问信号至文件查杀结果共享服务模块。
步骤S250,文件查杀结果共享服务模块接收到文件查杀结果共享服务模块访问信号后,将文件属性信息与文件查杀结果共享服务模块中预存的查杀结果信息进行匹配,判断是否预存有第一查杀结果信息。若是,则执行步骤S260,返回并存储第一查杀结果信息至本地缓存系统模块。若否,则再执行步骤S400,根据文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息。
也就是说,通过将文件查杀结果共享服务设置为一种网络服务,包括提供文件查杀结果信息的查询服务。
其中,查询服务是指:扫描引擎需要扫描某个文件的时候,提供该文件的文件属性信息,通过网络请求到文件查杀结果共享服务模块上,文件查杀结果共享服务模块如果发现有此文件的查杀结果信息,就反馈给扫描引擎。
另外,文件查杀结果共享服务还包括上报服务。
其中,上报服务是指:扫描引擎通过对某个文件进行完整的扫描,获取了该文件的查杀结果信息后,可通过网络传输方式提交到文件查杀结果共享服务模块上,文件查杀结果共享服务模块进行查杀结果信息的及时缓存与更新。
此处,需要指出的是,当查询到本地缓存系统模块中未预存有与待扫描文件相匹配的第一查杀结果信息时,再通过执行查询文件查杀结果共享服务模块中是否预存有第一查杀结果信息的操作以获取待扫描文件的第一查杀结果信息。而当查询到文件查杀结果共享服务模块中预存有第一查杀结果信息时,再返回查询到的第一查杀结果信息的同时,还将第一查杀结果信息存储至本地缓存系统模块中。待下次在进行该待扫描文件的扫描时,直接由本地缓存系统模块中读取第一查杀结果信息即可。更进一步的提高了网内文件的扫描速率。
另外,当通过查询操作,判断出本地缓存系统模块和文件查杀结果共享服务模块中均未预存有与待扫描文件相匹配的第一查杀结果信息时,表明待扫描文件的第一查杀结果信息并未存储在本地缓存系统模块和文件查杀结果共享服务模块中。因此,则执行步骤S400,采用传统扫描方式对待扫描文件进行一次完整的扫描,以获取待扫描文件的查杀结果信息。
具体的,采用传统扫描方式对待扫描文件进行完整扫描的过程参见图3。即,步骤S400,根据待扫描文件的文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息,具体包括如下步骤:
步骤S410,读取待扫描文件,获取待扫描文件的字节数据。
步骤S420,根据字节数据,提取待扫描文件的文件特征信息。其中,待扫描文件的文件特征信息包括待扫描文件的特征码。
步骤S430,比对文件特征信息与病毒特征库,获取并返回第一查杀结果信息。
需要说明的是,为了避免下次再次进行该待扫描文件的完整扫描,同时保证本地缓存系统模块和文件查杀结果共享服务模块中存储的查杀结果信息的及时更新,当通过采用传统文件扫描方法对待扫描文件进行完整扫描,获取相应的查杀结果信息后,还可执行步骤S440,存储查杀结果信息至本地缓存系统模块,并上报至文件查杀结果共享服务模块,以实现文件查杀结果共享服务模块的上报服务功能。进一步提高了文件扫描速率,保证了预存的查杀结果信息的及时缓存与更新。
相应的,基于同一发明构思,本发明还提供了一种文件扫描系统。由于本发明提供的文件扫描系统的工作原理与本发明提供的文件扫描方法的原理相同或相似,因此重复之处不再赘述。
参见图4,作为本发明的文件扫描系统100的一具体实施例,包括文件扫描代理模块110和中心服务器120。
其中,文件扫描代理模块110被配置以读取待扫描文件,获取待扫描文件的文件属性信息及文件特征信息。
中心服务器120被配置以根据文件属性信息,查询预存的查杀结果信息中是否有与文件属性信息相匹配的第一查杀结果信息。
中心服务器120还被配置以当预存的查杀结果信息中存在第一查杀结果信息时,直接返回查杀结果信息。
其中,中心服务器120包括本地缓存系统模块121。本地缓存系统模块121与文件扫描代理模块110通讯连接。
文件扫描代理模块110包括第一发送单元。第一发送单元,用于发送查询本地缓存系统模块信号至本地缓存系统模块121。
本地缓存系统模块121包括第一接收单元和第一查询单元。
第一接收单元,用于接收查询本地缓存系统模块信号。
第一查询单元,用于根据文件属性信息,查询本地缓存系统模块中是否预存有第一查杀结果信息。
进一步的,中心服务器120还包括共享服务访问模块122和文件查杀结果共享服务模块123。
文件查杀结果共享服务模块123通过共享服务访问模块122,与文件扫描代理模块110通信连接。
其中,文件扫描代理模块110包括第二发送单元。
第二发送单元,用于发送文件查杀结果共享服务模块访问信号至共享服务访问模块122。
共享服务访问模块122,用于接收并传输文件查杀结果共享服务模块访问信号至文件查杀结果共享服务模块123。
文件查杀结果共享服务模块123包括第二接收单元和第二查询单元。
第二接收单元,用于接收文件查杀结果共享服务模块访问信号。
第二查询单元,用于将文件属性信息与文件查杀结果共享服务模块123中预存的查杀结果信息进行匹配,判断是否有第一查杀结果信息。
文件查杀结果共享服务模块123还包括记录单元和跳转单元。
记录单元,用于文件查杀结果共享服务模块123中预存有第一查杀结果信息时,存储第一查杀结果信息至本地缓存系统模块121。
跳转单元,用于文件查杀结果共享服务模块123中未预存有第一查杀结果信息时,跳转至传统扫描引擎模块130,执行根据文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息的步骤。
另外,需要说明的是,参见图5,作为本发明提供的文件扫描系统100的另一具体实施例,其还包括传统扫描引擎模块130。
传统扫描引擎模块130被配置以预存的查杀结果信息中不存在第一查杀结果信息时,根据文件特征信息,扫描待扫描文件,获取并返回第一查杀结果信息。
具体的,传统扫描引擎模块130包括读取单元、提取单元和比对单元(图中均未示出)。
其中,读取单元,用于读取待扫描文件,获取待扫描文件的字节数据。
提取单元,用于根据字节数据,提取待扫描文件的文件特征信息。
比对单元,用于比对文件特征信息与病毒特征库,获取并返回查杀结果信息。
综上所述,本发明的文件扫描系统100中,文件扫描代理模块110主要实现文件扫描的具体流程,包括:获取待扫描文件的文件属性信息,与本地缓存系统模块121相配合读取网络缓存内容,与共享服务访问模块122配合请求查询文件查杀结果共享服务模块123中存储的查杀结果信息,以及将查询到的第一查杀结果信息及时写入本地缓存系统模块121中,并将第一查杀结果信息返回给用户。
而共享服务访问模块122,则主要实现对全网计算机的文件的查杀结果信息的统一管理,并提供对外网络服务,包括上报服务和查询服务。
进一步的,文件查杀结果共享服务模块123则主要实现查杀结果信息的管理,以及接收上报服务实现查杀结果信息的查询工作。
同时,本地缓存系统模块121则主要是为了优化网络的访问次数,减少网络读写,用于缓存通过共享服务访问模块122请求查询到的待扫描文件的第一查杀结果信息,以及存储传统扫描引擎模块130获取的第一查杀结果信息等。
具体的:
本发明的文件扫描系统100,通过文件扫描代理模块110读取待扫描文件,获取待扫描文件的文件属性信息后,首先查询本地缓存系统模块121,如果本地缓存系统模块121中有与文件属性信息相匹配的第一查杀结果信息的缓存,则直接返回结果。如果没有,则通过共享服务访问模块122,访问文件查杀结果共享服务模块123。
文件查杀结果共享服务模块123通过查询匹配文件属性信息,如果没有相应的第一查杀结果信息,则通过传统扫描引擎模块130进行文件扫描,然后把新生成的第一查杀结果信息写入本地缓存系统模块121,并上报给文件查杀结果共享服务模块123。
如果有相应的第一查杀结果信息,则把获取到的第一查杀结果信息记录到本地缓存系统模块121中。当再次进行该待扫描文件的扫描时,就可以直接读取存储在本地缓存系统模块121中的第一查杀结果信息,而不需要使用传统扫描引擎模块进行文件的完整扫描,也不需要再通过网络传输方式进行文件查杀结果共享服务模块123的读写过程。进而减少了扫描过程中占用的计算机资源(如:磁盘读写和CPU计算等),提高了网内文件的扫描速率。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。