【具体实施方式】
图1示出了一个实施例中文件扫描的方法流程,包括如下步骤:
步骤S110,枚举待扫描文件。
本实施例中,在开启病毒查杀软件或者木马查杀软件的扫描引擎时,用户通过扫描引擎的查杀页面生成扫描请求,并将生成的扫描请求由IPC模块(进程间通信模块)发送到系统的底层硬件,进而通过系统的底层硬件将这一扫描请求发送到服务端中,扫描引擎以及服务端通过接收到的扫描请求获知需要进行扫描的文件,以根据扫描请求对待扫描文件进行针对性地扫描。IPC模块界于扫描引擎的查杀页面和底层硬件之间,用于实现杀查杀页面与底层硬件之间的通信,进而实现了扫描引擎与服务端之间的网络连通。
具体地,扫描请求中包含了任务ID、扫描层次以及枚举文件夹的方式,其中,扫描层次跟用户在查杀页面中对快速扫描、全盘扫描和自定义扫描的选择有关,例如,在快速扫描方式下,扫描速度较快,但是扫描层次较浅。
为进行文件的扫描,根据用户在查杀页面中的操作得到该用户指定要进行扫描的文件,这些用户指定要进行扫描的文件作为待扫描文件,将多个待扫描文件按照设定的队列长度进行枚举,并分发形成特定长度的枚举队列,以等待扫描。在优选的实施例中,文件长度为20000。
步骤S130,从枚举的待扫描文件中逐一获取待扫描文件的属性值,并向服务端传输属性值。
本实施例中,获取待扫描文件的属性值,该属性值对待扫描文件进行唯一标识,并且可用于确保待扫描文件的完整性。在优选的实施例中,待扫描文件的属性值可以是MD5值。
在从枚举的多个待扫描文件中逐一获取每一待扫描文件的属性值,生成包含了属性值、待扫描文件的文件名等信息的查询请求,并向服务端传输生成的查询请求。服务端可以是采用多个服务器构建的云平台,云平台中的服务器数量可以随着需要的变化进行任意增减,也可以是大型的服务器集群。
在触发了服务端对文件的扫描后,若需要进行服务端扫描的枚举的待扫描文件为空,没有找到进行服务端扫描的待扫描文件,则等待设定的时间后再尝试。该设定的时间可以是100毫秒。
步骤S150,将属性值与服务端中存储的特征码进行比对,得到与属性值一致的特征码以及该特征码所属的类别。
本实施例中,属性值可以是对待扫描文件进行加密计算得到的MD5值或者哈希值,每一待扫描文件所对应的属性值都是唯一的,若待扫描文件是不完整的,则对应的属性值将发生变化,与完整的待扫描文件所对应的属性值是不相一致的。服务端存储了大量的特征码以及与该特征码所属的类别。服务端所存储的特征码与类别是存在着对应关系的,每一特征码均有与对应的类别。根据待扫描文件的属性值在服务端中进行查找,以得到与该待扫描文件的属性值相一致的特征码,进而根据特征码与类别之间的对应关系得到该特征码所属的类别,该类别即为待扫描文件的属性值所归属的类别,指示了待扫描文件是正常文件还是病毒程序文件或者木马程序文件。例如,对于病毒程序文件的特征码,所属的类别为黑名单,类别为黑名单的文件为病毒程序文件或者木马程序文件;对于正常文件的特征码,所属的类别为白名单,类别为白名单的文件为确定不会包含病毒程序文件或木马程序文件的文件,可放心运行该文件;对于可疑文件,所属的类别为灰名单,类别为灰名单的文件为不能认定为病毒程序文件或木马程序文件,但在系统的病毒敏感部位活动的文件。
在属性值与服务端存储的特征码进行比对的过程中得到与属性值相一致的特征码,进而由这一与属性值相一致的特征码得到对应的类别,这一类别指示了与属性值对应的文件是病毒程序文件或者木马程序文件,或是正常文件,或是可疑文件,若服务端中不存在与属性值相一致的特征码,则未命中服务端中存储的大量特征码,可将该属性值对应的文件归类至未命中名单中。
步骤S170,根据与属性值一致的特征码以及该特征码所属的类别形成待扫描文件、属性值以及类别之间的对应关系,并将对应关系记录于第一扫描结果中。
本实施例中,由属性值与特征码的比对过程可以得到待扫描文件所属类别,进而得到这一文件的扫描结果,并将扫描结果返回给用户。
在另一个实施例中,如图2所示,上述步骤S170之后还包括以下步骤:
步骤S210,根据第一扫描结果确定进行本地扫描的待扫描文件。
本实施例中,在通过服务端进行文件扫描基础上,还可利用扫描引擎对文件进行本地扫描。为进一步提高文件扫描的效率以及准确度,应当与服务端所进行的文件扫描充分结合来实现文件的本地扫描。
具体地,由服务端所返回的第一扫描结果可以知道哪些待扫描文件是可疑文件以及在服务端中未查找到与属性值相对应的特征码的待扫描文件,此时为保证扫描结果的准确性,需要将第一扫描结果为可疑文件以及在服务端中未查找到与属性值相对应的特征码的待扫描文件作为进行本地扫描的待扫描文件。
此外,还需要对未通过服务端进行文件扫描的多个待扫描文件进行本地扫描以保证所有的文件均进行了扫描并得到相应的扫描结果。
在触发了本地扫描后,若未寻找到进行本地扫描的待扫描文件,可等待设定的时间后再尝试进行本地扫描的待扫描文件的寻找。在优选的实施例中,设定的时间为100毫秒。
步骤S230,对确定的待扫描文件进行本地扫描得到第二扫描结果。
本实施例中,从确定的待扫描文件中获取属性值,并根据获取的属性值从存储于本地的病毒库中查找与获取的属性值相同的特征码及其所属类别,进而根据查找到的类别获知对应的文件是正常文件还是病毒程序文件或木马程序文件。
步骤S250,整合第二扫描结果和第一扫描结果,形成第三扫描结果。
本实施例中,在完成待扫描文件的服务端扫描和本地扫描后,对得到的第一扫描结果和第二扫描结果进行整合,充分参考第一扫描结果和第二扫描结果得到第三扫描结果。
第一扫描结果 |
第二扫描结果 |
第三扫描结果 |
黑 |
黑 |
黑 |
黑 |
白 |
黑 |
黑 |
未命中 |
黑 |
白 |
黑 |
白 |
白 |
白 |
白 |
白 |
未命中 |
白 |
灰 |
黑 |
黑 |
灰 |
白 |
白 |
灰 |
灰 |
灰 |
未命中 |
黑 |
黑 |
未命中 |
白 |
白 |
未命中 |
灰 |
灰 |
具体地,如上表所示,对于某一文件,若第一扫描结果所记载的类别为黑名单,则按照第一扫描结果形成该文件的第三扫描结果,若第一扫描结果所记载的类别为灰名单或者未命中名单,则需要对此文件进行本地扫描得到第二扫描结果,并按照第二扫描结果作为该文件的第三扫描结果。
在上述文件的扫描方法中,在形成了第三扫描结果之后可向用户展示,并根据这一第三扫描结果向用户提示类别为黑名单的文件存在风险,并对类别为黑名单的文件进行清除处理。
在另一个实施例中,如图3所示,上述步骤S250之后还包括以下步骤:
步骤S310,根据第三扫描结果中对应的文件项将待扫描文件从枚举队列中移除。
本实施例中,在经过服务端对文件的扫描以及本地扫描后,应当将完成了扫描的文件从枚举的待扫描文件中移除,即根据第三扫描结果中对应的文件项得到完成了扫描的文件,进而将这些完成了扫描的文件从枚举的多个扫描文件中移除。
步骤S330,在枚举队列中判断是否存在空位,若是,则进入步骤S350,若否,结束。
本实施例中,由于枚举的待扫描文件形成了特定长度的枚举队列,因此并不是所有的待扫描文件都位于枚举队列中,因此在枚举队列中寻找空位,以便于将还未处于枚举队列中的待扫描文件添加至枚举队列中。
具体地,从枚举队列中在移除了完成扫描的文件后,枚举队列中的待扫描文件还是处于原有的位置,并不会因为某一文件的移除而发生移动或者位置调整,例如,若枚举队列中处于第一位的文件被扫描完毕并移出队列后,处于枚举队列第二位的待扫描文件将不会往前移动来填补枚举队列首位的空位,因此,在枚举队列中枚举指针将从枚举队列的第一位为起始查找空位,当查找到空位时,将未处于枚举队列中需要进行扫描的待扫描文件添加至枚举队列中,若暂时没有查找到空位,则继续进行查找,以等待出现空位时再进行向枚举队列进行待扫描文件的添加。
步骤S350,将未处于枚举队列中的待扫描文件添加至枚举队列中。
在另一个实施例中,如图4所示,上述文件的扫描方法包括以下步骤:
步骤S401,枚举待扫描文件。
步骤S402,判断枚举的待扫描文件长度是否达到第一阈值,若是,则进入步骤S403,若否,则返回步骤S401。
本实施例中,在逐一进行待扫描文件的枚举形成枚举队列的过程中,判断所形成的枚举队列长度是否达到了第一阈值,若是,则触发服务端进行文件的扫描。在优选的实施例中,第一阈值可以是50,即当枚举了50个待扫描文件时立即触发服务端对文件的扫描。
步骤S403,从枚举的待扫描文件中查找符合预设条件的待扫描文件。
本实施例中,在触发服务端进行文件的扫描后,从枚举的多个待扫描文件中查找可进行服务端扫描的待扫描文件。在优选的实施例中,预设条件可以是小于3兆的PE文件(Portable Execute,可执行文件)。预设条件可根据实际的处理能力以及用户需要进行灵活修改。
步骤S405,从枚举的待扫描文件中逐一获取待扫描文件的属性值,并向服务端传输属性值。
步骤S406,将所述属性值与服务端中存储的特征码进行比对,得到与属性值一致的特征码以及该特征码所属的类别。
步骤S407,根据与属性值一致的特征码以及特征码所属的类别形成待扫描文件、属性值以及类别之间的对应关系,并将对应关系记录于第一扫描结果中。
步骤S408,判断枚举的待扫描文件长度是否达到第二阈值,若是,则进入步骤S409,若否,则返回步骤S401。
本实施例中,在逐一进行待扫描文件的枚举形成枚举队列的过程中,判断所形成的枚举队列长度是否已经达到了设定的第二阈值,若是,则触发本地扫描。在优选的实施例中,第二阈值可以是5000,即当枚举了5000个待扫描文件时即可触发本地扫描。
在优选的实施例中,第二阈值应当大于第一阈值,这是因为服务端所进行的文件扫描需要进行网络连接和数据传输,相对地,所花费的时间也比本地扫描花费的时间多得多,并且由于服务端中存储的特征码最为全面,最终的扫描结果在服务端扫描文件所形成的第一扫描结果基础上形成可提高扫描的准确性,并有利于减少总的扫描时间。
步骤S409,根据第一扫描结果确定进行本地扫描的待扫描文件。
在一个具体的实施例中,上述步骤S405之后还包括了标记传输属性值的待扫描文件的步骤。
本实施例中,在向服务端传输属性值后,标记通过服务端进行扫描的待扫描文件。
如图5所示,上述步骤S409的具体过程为:
步骤S501,根据第一扫描结果得到枚举的待扫描文件中将进行二次扫描的文件项。
本实施例中,从第一扫描结果中得到已经完成了服务端文件扫描的文件项以及对应的类别,若第一扫描结果中所记载的某一文件项所对应的类别为灰名单或者未命中名单,则说明该文件项可能是可疑文件或者没有在服务端存储的特征码中找到与该文件项属性值相同的特征码,无法对该文件项进行判定,因此需要对该文件项进行二次扫描。
步骤S503,从枚举的待扫描文件中选取未标记的待扫描文件,将进行二次扫描的文件项和未标记的待扫描文件形成进行本地扫描的待扫描文件。
本实施例中,枚举的多个待扫描文件中未通过服务端进行文件扫描的待扫描文件也需要通过本地的扫描引擎进行扫描。
步骤S410,对确定的待扫描文件进行本地扫描得到第二扫描结果。
本实施例中,对确定的待扫描文件进行本地扫描得到第二扫描结果的具体过程为:按照设定的优先级依次扫描进行二次扫描的文件项和未标记的待扫描文件。
根据设定的优先级依次对确定的待扫描文件进行本地扫描的过程中,首先对进行二次扫描的文件项进行本地扫描,在进行二次扫描的文件项扫描完成后对不属于PE文件的待扫描文件进行扫描,最后对不符合预设条件的PE文件进行本地扫描。根据实际的扫描过程,扫描的优选级可进行灵活地调整。
步骤S411,整合第二扫描结果和第一扫描结果,形成第三扫描结果。
步骤S412,获取进行二次扫描的文件项在第二扫描结果中对应的类别。
本实施例中,由于第二扫描结果中也记录了文件名、属性值以及类别之间的对应关系,因此从第二扫描结果中进行查找可以获取到进行了二次扫描的文件项所对应的类别,根据该类别可以知道这一进行了二次扫描的文件项是否是病毒程序文件或木马程序文件。
步骤S413,根据获取的类别判断进行二次扫描的文件项是否危险,若是,则进入步骤S414,若否,则进入步骤S415。
本实施例中,由对应的类别可以知道进行了二次扫描的文件项是否危险,例如,若类别为黑名单,则说明对应的进行了二次扫描的文件项中存在病毒程序文件或木马程序文件,存在着危险,由于这一类别是由本地扫描获得的,因此说明服务端所存储的大量特征码还不够全面,需要进行更新,此时,将这一类别所对应的进行了二次扫描的文件项对应的属性值,并作为特征码进行存储。
步骤S414,上传进行二次扫描的文件项对应的属性值。
步骤S415,扫描进行二次扫描的文件项得到对应的可疑度。
本实施例中,当判断到进行二次扫描的文件项所属类别是不危险的,这一进行二次扫描的文件项可能是可疑文件,因此需要再次对这一进行二次扫描的文件项进行扫描以得到该文件项的可疑度。
步骤S416,判断对应的可疑度是否超过可疑阈值,若是,则返回步骤S414,若否,则结束。
本实施例中,可根据设定的可疑阈值来判定可疑文件安全的可能性,例如,可疑阈值可设定为30%,若可疑度超过了30%,则说明该可疑文件应当是一个病毒程序文件或者木马程序文件,而服务端中并没存储这一可疑文件的特征码,因此需要将可疑文件的特征码上传,并归类至黑名单中。
图6示出了一个实施例中的文件的扫描系统,包括客户端10以及服务端30。
客户端10包括枚举模块110以及属性值获取模块120。
枚举模块110,用于枚举待扫描文件。
本实施例中,在开启病毒查杀软件或者木马查杀软件的扫描引擎时,用户通过扫描引擎的查杀页面生成扫描请求,并将生成的扫描请求由IPC模块(进程间通信模块)发送到系统的底层硬件,进而通过系统的底层硬件将这一扫描请求发送到服务端中,扫描引擎以及服务端通过接收到的扫描请求获知需要进行扫描的文件,以根据扫描请求对待扫描文件进行针对性地扫描。IPC模块界于扫描引擎的查杀页面和底层硬件之间,用于实现杀查杀页面与底层硬件之间的通信,进而实现了扫描引擎与服务端之间的网络连通。
具体地,扫描请求中包含了任务ID、扫描层次以及枚举文件夹的方式,其中,扫描层次跟用户在查杀页面中对快速扫描、全盘扫描和自定义扫描的选择有关,例如,在快速扫描方式下,扫描速度较快,但是扫描层次较浅。
为进行文件的扫描,根据用户在查杀页面中的操作得到该用户指定要进行扫描的文件,这些用户指定要进行扫描的文件作为待扫描文件,将枚举模块110多个待扫描文件按照设定的队列长度进行枚举,并分发形成特定长度的枚举队列,以等待扫描。在优选的实施例中,文件长度为20000。
属性值获取模块120,用于从枚举的待扫描文件中逐一获取待扫描文件的属性值,并向服务端传输属性值。
本实施例中,属性值获取模块120获取待扫描文件的属性值,该属性值对待扫描文件进行唯一标识,并且可用于确保待扫描文件的完整性。在优选的实施例中,待扫描文件的属性值可以是MD5值。
属性值获取模块120在从枚举的多个待扫描文件中逐一获取每一待扫描文件的属性值,生成包含了属性值、待扫描文件的文件名等信息的查询请求,并向服务端传输生成的查询请求。服务端可以是采用多个服务器构建的云平台,云平台中的服务器数量可以随着需要的变化进行任意增减,也可以是大型的服务器集群。
在触发了服务端对文件的扫描后,若需要进行服务端扫描的枚举的待扫描文件为空,没有找到进行服务端扫描的待扫描文件,则等待设定的时间后再尝试。该设定的时间可以是100毫秒。
服务端30包括数据库310、比对模块320以及对应关系形成模块330。
数据库310,用于存储特征码以及该特征码所属的类别。
比对模块320,用于将属性值瑟存储的特征码进行比对,得到与属性值相一致的特征码以及该特征码所属的类别。
本实施例中,属性值可以是对待扫描文件进行加密计算得到的MD5值或者哈希值,每一待扫描文件所对应的属性值都是唯一的,若待扫描文件是不完整的,则对应的属性值将发生变化,与完整的待扫描文件所对应的属性值是不相一致的。服务端存储了大量的特征码以及与该特征码所属的类别。服务端所存储的特征码与类别是存在着对应关系的,每一特征码均有与对应的类别。比对模块320根据待扫描文件的属性值在服务端中进行查找,以得到与该待扫描文件的属性值相一致的特征码,进而根据特征码与类别之间的对应关系得到该特征码所属的类别,该类别即为待扫描文件的属性值所归属的类别,指示了待扫描文件是正常文件还是病毒程序文件或者木马程序文件。例如,对于病毒程序文件的特征码,所属的类别为黑名单,类别为黑名单的文件为病毒程序文件或者木马程序文件;对于正常文件的特征码,所属的类别为白名单,类别为白名单的文件为确定不会包含病毒程序文件或木马程序文件的文件,可放心运行该文件;对于可疑文件,所属的类别为灰名单,类别为灰名单的文件为不能认定为病毒程序文件或木马程序文件,但在系统的病毒敏感部位活动的文件。
比对模块320在属性值与服务端存储的特征码进行比对的过程中得到与属性值相一致的特征码,进而由这一与属性值相一致的特征码得到对应的类别,这一类别指示了与属性值对应的文件是病毒程序文件或者木马程序文件,或是正常文件,或是可疑文件,若服务端中不存在与属性值相一致的特征码,则未命中服务端中存储的大量特征码,可将该属性值对应的文件归类至未命中名单中。
对应关系形成模块330,用于根据与属性值一致的特征码以及该特征码所属的类别形成待扫描文件、属性值以及类别之间的对应关系,并将对应关系记录于第一扫描结果中。
本实施例中,对应关系形成模块330由属性值与特征码的比对过程可以得到待扫描文件所属类别,进而得到这一文件的扫描结果,并将扫描结果返回给用户。
在另一个实施例中,如图7所示,上述客户端10除了包括枚举模块110以及属性值获取模块120之外,还包括了扫描文件确定模块130、扫描模块140以结果整合模块150。
扫描文件确定模块130,用于根据第一扫描结果确定进行本地扫描的待扫描文件。
本实施例中,在通过服务端进行文件扫描基础上,还可利用扫描引擎对文件进行本地扫描。为进一步文件扫描的效率以及准确度,应当与服务端所进行的文件扫描充分结合来实现文件的本地扫描。
具体地,扫描文件确定模块130由服务端所返回的第一扫描结果可以知道哪些待扫描文件是可疑文件以及在服务端中未查找到与属性值相对应的特征码的待扫描文件,此时为保证扫描结果的准确性,需要将第一扫描结果为可疑文件以及在服务端中未查找到与属性值相对应的特征码的待扫描文件作为进行本地扫描的待扫描文件。
此外,扫描文件确定模块130还需要对未通过服务端进行文件扫描的多个待扫描文件进行本地扫描以保证所有的文件均进行了扫描并得到相应的扫描结果。
在触发了本地扫描后,若未寻找到进行本地扫描的待扫描文件,可等待设定的时间后再尝试进行本地扫描的待扫描文件的寻找。在优选的实施例中,设定的时间为100毫秒。
在一个具体的实施例中,上述客户端还包括了标记模块,该标记模块用于标记传输属性值的待扫描文件。
本实施例中,标记模块在向服务端传输属性值后,标记通过服务端进行扫描的待扫描文件。
如图8所示,上述扫描文件确定模块130包括二次扫描单元131以及选取单元133。
二次扫描单元131,用于根据第一扫描结果得到枚举的待扫描文件中将进行二次扫描的文件项。
本实施例中,二次扫描单元131从第一扫描结果中得到已经完成了服务端文件扫描的文件项以及对应的类别,若第一扫描结果中所记载的某一文件项所对应的类别为灰名单或者未命中名单,则说明该文件项可能是可疑文件或者没有在服务端存储的特征码中找到与该文件项属性值相同的特征码,无法对该文件项进行判定,因此需要对该文件项进行二次扫描。
选取单元133,用于从枚举的待扫描文件中选取未标记的待扫描文件,将进行二次扫描的文件项和未标记的待扫描文件形成进行本地扫描的待扫描文件。
本实施例中,枚举的多个待扫描文件中未通过服务端进行文件扫描的待扫描文件也需要通过本地的扫描引擎进行扫描。
扫描模块140,用于对确定的待扫描文件进行本地扫描得到第二扫描结果。
本实施例中,扫描模块140从确定的待扫描文件中获取属性值,并根据获取的属性值从存储于本地的病毒库中查找与获取的属性值相同的特征码及其所属类别,进而根据查找到的类别获知对应的文件是正常文件还是病毒程序文件或木马程序文件
具体地,扫描模块140还用于按照设定的优选级依次扫描进行二次扫描的文件项和未标记的待扫描文件。
根据设定的优先级依次对确定的待扫描文件进行本地扫描的过程中,扫描模块140首先对进行二次扫描的文件项进行本地扫描,在进行二次扫描的文件项扫描完成后对不属于PE文件的待扫描文件进行扫描,最后对不符合预设条件的PE文件进行本地扫描。根据实际的扫描过程,扫描的优选级可进行灵活地调整。
结果整合模块150,用于整合第二扫描结果和第一扫描结果,形成第三扫描结果。
本实施例中,在完成待扫描文件的服务端扫描和本地扫描后,结果整合模块150对得到的第一扫描结果和第二扫描结果进行整合,充分参考第一扫描结果和第二扫描结果得到第三扫描结果。
在另一个实施例中,如图9所示,上述客户端10还包括了移除模块160以及添加模块170。
移除模块160,用于根据第三扫描结果中对应的文件项将待扫描文件从枚举队列中移除。
本实施例中,在经过服务端对文件的扫描以及本地扫描后,移除模块160应当将完成了扫描的文件从枚举的待扫描文件中移除,即根据第三扫描结果中对应的文件项得到完成了扫描的文件,进而将这些完成了扫描的文件从枚举的多个扫描文件中移除。
添加模块170,用于在枚举队列中判断是否存在空位,若是,则将未处于枚举队列中的待扫描文件添加至枚举队列中。
本实施例中,由于枚举的待扫描文件形成了特定长度的枚举队列,因此并不是所有的待扫描文件都位于枚举队列中,因此添加模块170在枚举队列中寻找空位,以便于将还未处于枚举队列中的待扫描文件添加至枚举队列中。
具体地,从枚举队列中在移除了完成扫描的文件后,枚举队列中的待扫描文件还是处于原有的位置,并不会因为某一文件的移除而发生移动或者位置调整,例如,若枚举队列中处于第一位的文件被扫描完毕并移出队列后,处于枚举队列第二位的待扫描文件交不会往前移动来填补枚举队列首位的空位,因此,在枚举队列中枚举指针将从枚举队列的第一位为起始查找空位,当查找到空位时,添加模块170将未处于枚举队列中需要进行扫描的待扫描文件添加至枚举队列中,若暂时没有查找到空位,则继续进行查找,以等待出现空位时再进行向枚举队列进行待扫描文件的添加。
在另一个实施例中,如图10所示,上述客户端还包括了枚举判断模块180以及查找模块190。
枚举判断模块180,用于判断枚举的待扫描文件长度是否达到第一阈值,若是,则通知查找模块190。
本实施例中,在逐一进行待扫描文件的枚举形成枚举队列的过程中,枚举判断模块180判断所形成的枚举队列长度是否达到了第一阈值,若是,则触发服务端进行文件的扫描。在优选的实施例中,第一阈值可以是50,即当枚举了50个待扫描文件时立即触发服务端对文件的扫描。
查找模块190,用于从枚举的待扫描文件中查找符合预设条件的待扫描文件。
本实施例中,在触发服务端进行文件的扫描后,查找模块190从枚举的多个待扫描文件中查找可进行服务端扫描的待扫描文件。在优选的实施例中,预设条件可以是小于3兆的PE文件。预设条件可根据实际的处理能力以及用户需要进行灵活修改。
枚举判断模块180还用于判断枚举的待扫描文件长度是否达到第二阈值,若是,则通知扫描文件确定模块130。
本实施例中,在逐一进行待扫描文件的枚举形成枚举队列的过程中,枚举判断模块180判断所形成的枚举队列长度是否已经达到了设定的第二阈值,若是,则触发本地扫描。在优选的实施例中,第二阈值可以是5000,即当枚举了5000个待扫描文件时即可触发本地扫描。
在优选的实施例中,第二阈值应当大于第一阈值,这是因为服务端所进行的文件扫描需要进行网络连接和数据传输,相对地,所花费的时间也比本地扫描花费的时间多得多,并且由于服务端中存储的特征码最为全面,最终的扫描结果在服务端扫描文件所形成的第一扫描结果基础上形成可提高扫描的准确性,并有利于减少总的扫描时间。
在另一个实施例中,如图11所示,上述客户端10还包括了类别获取模块200、危险性判断模块210、上传模块230以及可疑度判断模块240。
类别获取模块200,用于获取进行二次扫描的文件项在第二扫描结果中对应的类别。
本实施例中,由于第二扫描结果中也记录了文件名、属性值以及类别之间的对应关系,因此类别获取模块200从第二扫描结果中进行查找可以获取到进行了二次扫描的文件项所对应的类别,根据该类别可以知道这一进行了二次扫描的文件项是否是病毒程序文件或木马程序文件。
危险性判断模块210,用于根据获取的类别判断进行二次扫描的文件项是否危险,若是,则通知上传模块230,若否,则通知扫描模块140。
本实施例中,危险性判断模块210由对应的类别可以知道进行了二次扫描的文件项是否危险,例如,若类别为黑名单,则说明对应的进行了二次扫描的文件项中存在病毒程序文件或木马程序文件,存在着危险,由于这一类别是由本地扫描获得的,因此说明服务端所存储的大量特征码还不够全面,需要进行更新,此时,将这一类别所对应的进行了二次扫描的文件项对应的属性值,并作为特征码进行存储。
上传模块230,用于上传进行二次扫描的文件项得到对应的可疑度。
扫描模块140还用于扫描进行二次扫描的文件项得到对应的可疑度。
本实施例中,当判断到进行二次扫描的文件项所属类别是不危险的,这一进行二次扫描的文件项可能是可疑文件,因此需要扫描模块140再次对这一进行二次扫描的文件项进行扫描以得到该文件项的可疑度。
可疑度判断模块240,用于判断对应的可疑度是否超过可疑阈值,若是,则通知上传模块230。
本实施例中,可根据设定的可疑阈值来判定可疑文件安全的可能性,例如,可疑阈值可设定为30%,若通过可疑度判断模块240判断到可疑度已经超过了30%,则说明该可疑文件应当是一个病毒程序文件或者木马程序文件,而服务端中并没存储这一可疑文件的特征码,因此需要将可疑文件的特征码上传,并归类至黑名单中。
上述文件的扫描方法及系统,将待扫描文件的属性值传输到服务端中,通过与存储在服务端中的特征码及其类别进行比对实现文件的安全性和危险性识别,由于突破了客户端存储限制的服务端可存储大量的特征码,并且服务端可最快最及时地更新特征码,使得服务端中的特征码较为全面,大大提高了文件的扫描效率。
上述文件的扫描方法及系统中,将本地扫描与服务端所进行的特征码比对结合起来对文件进行扫描,提高了文件扫描的准确性。
上述文件的扫描方法及系统中,将处于危险状态或者可疑度超过可疑阈值的二次扫描的文件项上传,不断更新和丰富服务端中存储的特征码,提升服务端扫描文件的效率。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。