一种文件动态病毒检测方法、装置、电子设备和存储介质与流程

未命名 09-14 阅读:76 评论:0


1.本发明涉及计算机系统及存储技术领域,特别是涉及一种文件动态病毒检测方法、一种文件动态病毒检测装置、一种电子设备和一种存储介质。


背景技术:

2.随着互联网的兴起大量的在线平台陆续上线,一部分线上平台提供文件上传功能,服务提供方需要校验文件安全性,如果含有病毒的文件一旦被使用将会对系统造成伤害、甚至造成不可逆的损失。为此需要对上传的文件进行病毒查杀,但是现有的病毒查杀方式会在上传时由网关对文件扫描病毒后再次转发,因此会占用大量内存,导致存储效率降低。或者是在文件整体写入磁盘后,对磁盘进行全盘扫描,由于数据量大,导致扫描数据降低。


技术实现要素:

3.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件动态病毒检测方法、一种文件动态病毒检测装置、一种电子设备和一种存储介质。
4.为了解决上述问题,在本发明的第一个方面,本发明实施例公开了一种文件动态病毒检测方法,包括:构建与文件的长度匹配的病毒特征库;从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
5.进一步地,所述构建与文件的长度匹配的病毒特征库的步骤包括:获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;基于所述文件的长度,对所述病毒识别特征码进行分类,构建所述病毒特征库。
6.进一步地,所述基于所述文件的长度,对所述病毒识别特征码进行分类,构建病毒特征库的步骤包括:基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。
7.进一步地,所述基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库的步骤包括:响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;
将所述第一病毒特征码存储至第一字符串数组;响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;将所述第二病毒特征码存储至第二字符串数组;基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。
8.进一步地,所述获取第一病毒特征码和第二病毒特征码的步骤包括:从所述第一字符串数组中获取所述第一病毒特征码,从所述第二字符串数组中获取所述第二病毒特征码。
9.进一步地,所述方法还包括:确定所述文件流片段的数据长度值;依据所述数据长度值确定所述预设文件缓冲区容量阈值。
10.进一步地,所述方法还包括:响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。
11.进一步地,所述方法还包括:响应于所述一次病毒查杀异常,删除所述文件流片段。
12.进一步地,所述方法还包括:响应于所述二次病毒查杀异常,删除所述磁盘文件。
13.进一步地,所述接收文件流片段的步骤包括:接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。
14.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤包括:判断所述文件流片段是否为首次读取;响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;将所述第一病毒特征码与所述文件流片段进行匹配;响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片段,将所述合并待检片段存储至预设第三缓冲区;将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。
15.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述合并待检片段与所述第一病毒特征码不匹配,确定所述一次病毒查杀完成。
16.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。
17.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区
和所述预设第三缓冲区。
18.进一步地,所述采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀的步骤包括:确定所述第二病毒特征码的最大长度;基于所述最大长度切分所述磁盘文件,生成待检队列;采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀。
19.进一步地,所述基于所述最大长度切分所述磁盘文件,生成待检队列的步骤包括:基于所述最大长度,确定切分单位长度;依据所述切分单位长度和磁盘文件,计算切片数量;结合所述切分单位长度和所述切片数量,创建所述待检队列。
20.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:确定所述待检队列的起始位;从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。
21.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤还包括:响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀异常;响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。
22.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:响应于所述二次病毒查杀完成,清空所述待检队列。
23.在本发明的第二个方面,本发明实施例公开了一种文件动态病毒检测装置,包括:构建模块,用于构建与文件的长度匹配的病毒特征库;获取模块,用于从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;接收模块,用于响应于所述文件上传操作,接收文件流片段;一次病毒查杀模块,用于采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;写入模块,用于响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;二次病毒查杀模块,用于采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
24.在本发明的第三个方面,本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的文件动态病毒检测方法的步骤。
25.在本发明的第四个方面,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的文
件动态病毒检测方法的步骤。
26.本发明实施例包括以下优点:本发明实施例通过构建与文件的长度匹配的病毒特征库,从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。通过两次病毒查杀相结合,解决了在文件传输过程中无法进行病毒识别问题,减少大文件上传内存、带宽消耗;按病毒特征码大小对文件片段进行不同的扫描,一次读取文件片段可以扫描多种病毒,节省内存消耗,同时提升扫描效率。
附图说明
27.图1是本发明的一种文件动态病毒检测方法实施例的步骤流程图;图2是本发明的另一种文件动态病毒检测方法实施例的步骤流程图;图3是本发明的一种文件动态病毒检测方法示例的一次病毒查杀流程图;图4是本发明的一种文件动态病毒检测方法示例的二次病毒查杀流程图;图5是本发明的一种文件动态病毒检测装置实施例的结构框图;图6是本发明实施例提供的一种电子设备的结构框图;图7是本发明实施例提供的一种存储介质的结构框图。
具体实施方式
28.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
29.参照图1,示出了本发明的一种文件动态病毒检测方法实施例的步骤流程图,所述文件动态病毒检测方法具体可以包括如下步骤:步骤101,构建与文件的长度匹配的病毒特征库;在进行病毒检测前,可以预先构建出与本次需要检测的文件的长度匹配的病毒特征库,以使该病毒特征库可以适配于本次检测的文件。
30.步骤102,从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;可以从生成的病毒特征库中,获取不同长度的第一病毒特征码和第二病毒特征码。可以实现在不同阶段以不同的病毒特征码进行病毒查杀。其中,第一病毒特征码的长度小于第二病毒特征码的长度。
31.步骤103,响应于文件上传操作,接收文件流片段;在上传开始上传文件时,可以响应于文件上传操作,接收设备端发送的文件流片段。其中文件流片段即为文件在上传时单个数据包或多个数据包的组合。
32.步骤104,采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;在文件的上传过程中,可以采用第一病毒特征码对文件流片段进行首次的病毒查杀,即一次病毒查杀,此时的第一病毒特征码长度短,文件流片段相对整个文件的数据量也
小,一次病毒查杀可以较快的完成且只占用较小的内存即可实现。
33.步骤105,响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;在一次病毒查杀完成后,即可以确定上传过程中对文件的病毒查杀并未发现任何的病毒。可以响应于一次病毒查杀完成,将文件流片段写入预设磁盘,生成磁盘文件。即将文件流片段整合为一个文件存储到预设磁盘中,生成对应的磁盘文件。
34.步骤106,采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
35.在存入磁盘后,可以采用第二病毒特征码存入的磁盘文件进行二次病毒查,以对磁盘文件进行全面的扫描,以实现全面的病毒查杀,且无需对磁盘的其他文件进行扫描,提高扫描效率。
36.本发明实施例通过构建与文件的长度匹配的病毒特征库,从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。通过两次病毒查杀相结合,解决了在文件传输过程中无法进行病毒识别问题,减少大文件上传内存、带宽消耗;按病毒特征码大小对文件片段进行不同的扫描,一次读取文件片段可以扫描多种病毒,节省内存消耗,同时提升扫描效率。
37.参照图2,示出了本发明的另一种文件动态病毒检测方法实施例的步骤流程图,所述文件动态病毒检测方法具体可以包括如下步骤:步骤201,获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;在进行病毒查杀扫描前,可以获取已有的病毒识别信息,该病毒识别信息包括病毒识别特征码。一种病毒识别特征码对应着一种病毒。在获取病毒识别信息时,可以获取多个病毒识别信息。
38.步骤202,对所述病毒识别特征码进行分类,构建病毒特征库。
39.得到病毒识别特征码后,可以对病毒识别特征码进行分类,以构建出病毒特征库。
40.在本发明的一可选实施例中,所述对所述病毒识别特征码进行分类,构建病毒特征库的步骤包括:子步骤s2021,基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。
41.在本发明实施例中,可以基于病毒识别特征码的长度大小与预设文件缓冲区容量阈值进行比较,以进行分类,基于分类结构构建病毒特征库。
42.具体地,所述基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库的步骤包括:响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;将所述第一病毒特征码存储至第一字符串数组;响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;将所述第二病毒特征码存储至第二字符串数组;基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。
43.在实际应用中,可以将病毒识别特征码的长度与预设文件缓冲区容量阈值进行比
较,确定第一病毒特征码和第二病毒特征码。可将病毒识别特征码的长度不大于预设文件缓冲区容量阈值的病毒识别特征码,确定为第一病毒特征码,并且将第一病毒特征码存储至第一字符串数组,以便于读取第一病毒特征码。可以将病毒识别特征码的长度大于预设文件缓冲区容量阈值的病毒识别特征码,确定为第二病毒特征码,将第二病毒特征码存储至第二字符串数组。然后将第一字符串数组和第二字符串数组进行结合,构建出病毒特征库。
44.在本发明的一可选实施例中,所述方法还包括:步骤s1,确定所述文件流片段的数据长度值;步骤s2,依据所述数据长度值确定所述预设文件缓冲区容量阈值。
45.在本发明实施例中,可以在构建病毒库之前,可以预先获取文件流片段的大小,如10m(兆)、15m等,通过文件流片段的大小确定出文件流片段的数据长度值,如数据长度值为文件流片段的大小对应的数值。然后再将数据长度值确定为预设文件缓冲区容量阈值,以使预设文件缓冲区容量阈值可以根据接收不同的文件时动态调整,进而得到不同长度的第一病毒特征码和第二病毒特征码。
46.步骤203,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;在本发明实施例中,可以获取第一病毒特征码和第二病毒特征码,以进行不同的病毒查杀,其中,第一病毒特征码的长度小于第二病毒特征码的长度。
47.具体地,可以是从第一字符串数组中获取第一病毒特征码,从第二字符串数组中获取第二病毒特征码。
48.步骤204,响应于文件上传操作,接收文件流片段;在用户上传文件时,触发文件上传操作。可以响应于文件上传操作,接收文件流片段。
49.具体地,所述响应于文件上传操作,接收文件流片段的步骤包括:子步骤s2041,接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。
50.在实际应用中,可以接收文件流片段,并将文件流片段存储预设第一数据缓冲区,该第一数据缓冲区用于文件流片段。
51.步骤205,采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;在文件上传的期间,采用第一病毒特征码对文件流片段进行一次病毒查杀,以占用较小的内存对文件流片段进行病毒查杀。
52.在本发明的一可选实施例中,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤包括:子步骤s2051,判断所述文件流片段是否为首次读取;子步骤s2052,响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;子步骤s2053,将所述第一病毒特征码与所述文件流片段进行匹配;子步骤s2054,响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片
段,将所述合并待检片段存储至预设第三缓冲区;子步骤s2055,将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。
53.在实际应用中,可以判断文件流是否首次读取,如首次读取时预设第一数据缓冲区存储的上一次的文件流数据为空是确定为首次读取。响应于文件流片段为首次读取,可将文件流片段存储至预设第二缓冲区,第二缓冲区为存储当次进行一次病毒查杀的待检测文件流文件的数据缓冲区。然后读取第一病毒特征码,采用多模式匹配算法,将第一病毒特征码与所述文件流片段进行匹配,以实现病毒检杀,将第一病毒特征码与文件流片段都不匹配时,即当前无病毒,可将预设第一缓冲区的文件流片段与预设第二缓冲区中的文件流片段合并,生成合并待检片段,以防止读取文件流片段中存在截取过的病毒特征码导致检测不到异常的情况。将合并待检片段存储至预设第三缓冲区,预设第三缓冲区即为合并缓冲区,用于存储合并的文件流片段。再将合并待检片段与第一病毒特征码进行多模式匹配,以进行一次病毒查杀。
54.在本发明的一实施例中,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:子步骤s2055,响应于所述合并待检片段与所述第一病毒特征码不匹配,确定所述一次病毒查杀完成。
55.在针对合并待检片段与第一病毒特征码进行匹配时,合并待检片段与第一病毒特征码并不匹配时,可以响应于合并待检片段与第一病毒特征码不匹配,确定一次病毒查杀完成,在一次病毒查杀中并未发现病毒。
56.在本发明的一实施例中,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:子步骤s2056,响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区和所述预设第三缓冲区。
57.在响应于一次病毒查杀完成,即并不存在病毒时,可以情况预设第一缓冲区、预设第二缓冲区和预设第三缓冲区,以释放预设第一缓冲区、预设第二缓冲区和预设第三缓冲区,进行下一次的一次病毒查杀。
58.在本发明的一实施例中,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:子步骤s2057,响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。
59.在针对合并待检片段或文件流片段,与第一病毒特征码进行匹配时,文件流片段或合并待检片段与第一病毒特征码存在匹配的情况时,可以响应于第一病毒特征码与文件流片段匹配,或合并待检片段与第一病毒特征码匹配,确定一次病毒查杀中扫描到病毒,确定一次病毒查杀异常。通过一次病毒查杀异常表征,在一次病毒查杀时,扫描到病毒。
60.步骤206,响应于所述一次病毒查杀异常,删除所述文件流片段。
61.在一次病毒查杀的过程中,发现病毒,即一次病毒查杀异常。可以响应于一次病毒查杀异常,将文件流片段进行删除,以消除病毒。
62.步骤207,响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成
磁盘文件;在一次病毒查杀未发现病毒时,可以响应于一次病毒查杀完成,将文件流片段写入预设磁盘,生成磁盘文件。
63.步骤208,采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀;在文件存储磁盘后,可以采用第二病毒特征码对磁盘文件进行二次病毒查杀,以进行更全面的病毒查杀扫描。
64.在本发明的一可选实施例中,所述采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀的步骤包括:子步骤s2081,确定所述第二病毒特征码的最大长度;在发明实施例中,可以首先第二病毒特征码的最大长度,以最大长度的第二病毒特征码对磁盘文件进行全面扫描。
65.子步骤s2082,基于所述最大长度切分所述磁盘文件,生成待检队列;可以基于最大长度对磁盘文件进行切分,生成一个连续的待检队列,以便于多线程执行队列任务,提高扫描效率。
66.具体地,所述基于所述最大长度切分所述磁盘文件,生成待检队列的步骤包括:基于所述最大长度,确定切分单位长度;依据所述切分单位长度和磁盘文件,计算切片数量;结合所述切分单位长度和所述切片数量,创建所述待检队列。
67.在实际应用中,可以基于最大长度设置待检文件的分片大小,即切分单位长度。然后根据切分单位长度和整个磁盘文件的长度并计算出切片数量,然后将切片数量和切分单位长度确定每个切片,创建出文件待检队列。
68.子步骤s2083,采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀;可以针对第二病毒特征码逐一对待检队列中的切片进行病毒查杀,即进行二次病毒查杀。
69.具体地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:确定所述待检队列的起始位;从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。
70.可以将切片进行编号,编号从1开始至n,n为正整数。根据编号计算读取待检队列的偏移量δoffset(即起始位),通过设置偏移量作为待检队列的起始位置。即δoffset = (n
ꢀ‑
1)* chucksize,其中chucksize为切分单位长度。
71.然后将起始位置后的若干个切分单位长度的文件片段,确定为待检片段;如将始位置后的2个切分单位长度的文件片段,确定为待检片段,即起始位为0,结束位为2*chucksize-1位片段大小的数据;第二个片段的起始位为chucksize-1,结束位为2*chucksize-1位的片段大小;第n个片段的起始位为(n-1)* chucksize
ꢀ‑
,截止位为(n+1)* chucksize
ꢀ‑
1位的片段大小;最后一个片段起始位为(num
ꢀ‑
1)* chucksize,结束位为文件最后一位。
72.最后将待检片段逐一与第二病毒特征码进行匹配,以进行二次病毒查杀。
73.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤还包括:响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀
异常;响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。
74.在实际应用中,当待检片段与所述第二病毒特征码匹配时,即该待检片段存在病毒,可以响应于待检片段与第二病毒特征码匹配,确定二次病毒查杀异常。当待检片段与所述第二病毒特征码不匹配时,即该待检片段并不存在病毒,可以响应于待检片段与第二病毒特征码不匹配,确定二次病毒查杀正常。
75.步骤209,响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。
76.在二次病毒查杀未发现病毒时,可以响应于二次病毒查杀完成,将磁盘文件标记为安全文件,避免磁盘文件被误删除。
77.步骤210,响应于所述二次病毒查杀异常,删除所述磁盘文件。
78.在二次病毒查杀的过程中,发现病毒,即二次病毒查杀异常。可以响应于二次病毒查杀异常,将磁盘文件进行删除,以消除病毒。
79.本发明实施例通过构建病毒库,对提取的病毒库特征码按照预设文件读取缓存区大小进行归类,在文件传输过程中进行一次文件片段进行一次病毒特征码长度较小的病毒扫描,在传输过程中识别风险并中断请求,此步骤可以在文件传输中进行一次文件片段扫描,提前识别风险,解决文件传输过程中无法进行病毒识别问题,减少大文件上传内存、带宽消耗;对于传输过程中未检测出异常的情况,待文件完全接收写入磁盘后按最大的病毒特征码大小进行文件分片,采用多模式匹配算法进行病毒识别,同时根据特征码进行分片,采用按位读取的方式读取待检片段可以支持并发文件片段病毒扫描,提升扫描效率。
80.为了使本领域技术人员能够更好地理解本发明实施例,下面通过一个例子对本发明实施例加以说明:参照图3,示出了本发明的一种文件动态病毒检测方法示例的一次病毒查杀流程图;可以根据缓冲区大小设置两个缓冲区,buffer(缓冲区)1、buffer(缓冲区)2,和一个合并缓存区checkbuffer,(检查缓存)。其中buffer1为上一次从文件流中读取的缓存区大小的文件数据片段,buffer2为当前从文件流中读取的缓冲区大小的文件片段,checkbuffer为buffer1和buffer2的合并待检片段,主要防止读取文件流片段中存在截取过的病毒特征码导致检测不到异常的情况;文件片段扫描过程为a.判断文件流是否第一次读取,第一次读取buffer1为空,将读取的片段写入到buffer2中,读取病毒特征码array1数据,采用多模式匹配算法进行病毒检杀,如果发现异常则中断请求删除已写入的文件;b.如果a)没有发现到异常,将buffer1和buffer2数据写入到checkbuffer中,对checkbuffer进行病毒扫描,如果发现异常,则本次上传的文件存在风险,则中断请求并删除已写入的文件;c.如果b)未发现异常,checkbuffer缓存区数据清空,将buffer1数据写入到磁盘文件,清空buffer1,将buffer2数据写入到buffer1,清空buffer2用于继续接收文件流片段;继续读取文件流片段,重复上述步骤,如果发现病毒则中止请求,删除写入磁盘的文件,如果没有发现异常则进入下一步扫描操作。
81.参照图4,示出了本发明的一种文件动态病毒检测方法示例的二次病毒查杀流程
图;从第二病毒特征码数组中读取找到最大的病毒特征码,获取长度maxsize,根据maxsize设置待检文件的分片大小chuncksize,并计算文件切片个数num,创建文件待检队列,多线程执行队列任务;根据计算的片段数量进行编号n,编号从1开始,根据编号计算读取文件输入流的偏移量δoffset(即起始位),通过设置偏移量作为读取文件流的起始位置,为防止读取片段文件只包含部分病毒特征码导致检测不出来的情况,根据读取的文件片段,读取第二病毒特征码数组中的病毒特征码,采用多模式匹配算法进行病毒检杀;如果片段检测发现问题,清空该待检文件队列,标记文件为病毒文件,将该片段对应的文件从磁盘中删除;全部检测完则标记该文件为安全文件。
82.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
83.参照图5,示出了本发明的一种文件动态病毒检测装置实施例的结构框图,所述文件动态病毒检测装置具体可以包括如下模块:构建模块501,用于构建与文件的长度匹配的病毒特征库;获取模块502,用于获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;接收模块503,用于响应于文件上传操作,接收文件流片段;一次病毒查杀模块504,用于采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;写入模块505,用于响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;二次病毒查杀模块506,用于采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
84.在本发明的一可选实施例中,所述构建模块501包括:病毒获取子模块,用于获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;构建子模块,用于基于所述文件的长度,对所述病毒识别特征码进行分类,构建所述病毒特征库在本发明的一可选实施例中,所述构建子模块包括:构建单元,用于基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。
85.在本发明的一可选实施例中,所述构建单元包括:第一分类子单元,用于响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;
第一存储子单元,用于将所述第一病毒特征码存储至第一字符串数组;第二分类子单元,用于响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;第二存储子单元,用于将所述第二病毒特征码存储至第二字符串数组;构建子单元,用于基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。
86.在本发明的一可选实施例中,所述获取模块502包括:获取子模块,用于从所述第一字符串数组中获取所述第一病毒特征码,从所述第二字符串数组中获取所述第二病毒特征码。
87.在本发明的一可选实施例中,所述装置还包括:长度确定模块,用于确定所述文件流片段的数据长度值;调整模块,用于依据所述数据长度值确定所述预设文件缓冲区容量阈值。
88.在本发明的一可选实施例中,所述装置还包括:安全标记模块,用于响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。
89.在本发明的一可选实施例中,所述装置还包括:第一删除模块,用于响应于所述一次病毒查杀异常,删除所述文件流片段。
90.在本发明的一可选实施例中,所述装置还包括:第二删除模块,用于响应于所述二次病毒查杀异常,删除所述磁盘文件。
91.在本发明的一可选实施例中,所述接收模块503包括:接收子模块,用于接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。
92.在本发明的一可选实施例中,所述一次病毒查杀模块504包括:判断子模块,用于判断所述文件流片段是否为首次读取;第三存储子模块,用于响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;第一匹配子模块,用于将所述第一病毒特征码与所述文件流片段进行匹配;第四存储子模块,用于响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片段,将所述合并待检片段存储至预设第三缓冲区;第二匹配子模块,用于将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。
93.在本发明的一可选实施例中,所述一次病毒查杀模块504还包括:第一异常确定子模块,用于响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。
94.在本发明的一可选实施例中,所述一次病毒查杀模块504还包括:第一清空子模块,用于响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区和所述预设第三缓冲区。
95.在本发明的一可选实施例中,所述二次病毒查杀模块506包括:
最大长度确定子模块,用于确定所述第二病毒特征码的最大长度;待检队列生成子模块,用于基于所述最大长度切分所述磁盘文件,生成待检队列;二次病毒查杀子模块,用于采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀。
96.在本发明的一可选实施例中,所述待检队列生成子模块包括:切分长度确定单元,用于基于所述最大长度,确定切分单位长度;切片数量确定单元,用于依据所述切分单位长度和磁盘文件,计算切片数量;结合单元,用于结合所述切分单位长度和所述切片数量,创建所述待检队列。
97.在本发明的一可选实施例中,所述二次病毒查杀子模块包括:起始单元,用于确定所述待检队列的起始位;待检片段确定单元,用于从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;第三匹配单元,用于将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。
98.在本发明的一可选实施例中,所述第三匹配单元包括:第一匹配子单元,用于响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀异常;第二匹配子单元,用于响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。
99.在本发明的一可选实施例中,所述二次病毒查杀子模块包括:第二清空单元,用于响应于所述二次病毒查杀完成,清空所述待检队列对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
100.参照图6,本发明实施例还提供了一种电子设备,包括:处理器601和存储介质602,所述存储介质602存储有所述处理器601可执行的计算机程序,当电子设备运行时,所述处理器601执行所述计算机程序,以执行如本发明实施例任一项所述的文件动态病毒检测方法。所述文件动态病毒检测方法,包括:构建与文件的长度匹配的病毒特征库;从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
101.进一步地,所述构建与文件的长度匹配的病毒特征库的步骤包括:获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;基于所述文件的长度,对所述病毒识别特征码进行分类,构建所述病毒特征库。
102.进一步地,所述基于所述文件的长度,对所述病毒识别特征码进行分类,构建病毒特征库的步骤包括:
基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。
103.进一步地,所述基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库的步骤包括:响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;将所述第一病毒特征码存储至第一字符串数组;响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;将所述第二病毒特征码存储至第二字符串数组;基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。
104.进一步地,所述获取第一病毒特征码和第二病毒特征码的步骤包括:从所述第一字符串数组中获取所述第一病毒特征码,从所述第二字符串数组中获取所述第二病毒特征码。
105.进一步地,所述方法还包括:确定所述文件流片段的数据长度值;依据所述数据长度值确定所述预设文件缓冲区容量阈值。
106.进一步地,所述方法还包括:响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。
107.进一步地,所述方法还包括:响应于所述一次病毒查杀异常,删除所述文件流片段。
108.进一步地,所述方法还包括:响应于所述二次病毒查杀异常,删除所述磁盘文件。
109.进一步地,所述接收文件流片段的步骤包括:接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。
110.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤包括:判断所述文件流片段是否为首次读取;响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;将所述第一病毒特征码与所述文件流片段进行匹配;响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片段,将所述合并待检片段存储至预设第三缓冲区;将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。
111.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述合并待检片段与所述第一病毒特征码不匹配,确定所述一次病毒查杀完成。
112.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的
步骤还包括:响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。
113.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区和所述预设第三缓冲区。
114.进一步地,所述采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀的步骤包括:确定所述第二病毒特征码的最大长度;基于所述最大长度切分所述磁盘文件,生成待检队列;采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀。
115.进一步地,所述基于所述最大长度切分所述磁盘文件,生成待检队列的步骤包括:基于所述最大长度,确定切分单位长度;依据所述切分单位长度和磁盘文件,计算切片数量;结合所述切分单位长度和所述切片数量,创建所述待检队列。
116.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:确定所述待检队列的起始位;从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。
117.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤还包括:响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀异常;响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。
118.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:响应于所述二次病毒查杀完成,清空所述待检队列。
119.其中,存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
120.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
121.参照图7,本发明实施例还提供了一种计算机可读存储介质701,所述存储介质701上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的
文件动态病毒检测方法。所述文件动态病毒检测方法,包括:构建与文件的长度匹配的病毒特征库;从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。
122.进一步地,所述构建与文件的长度匹配的病毒特征库的步骤包括:获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;基于所述文件的长度,对所述病毒识别特征码进行分类,构建所述病毒特征库。
123.进一步地,所述基于所述文件的长度,对所述病毒识别特征码进行分类,构建病毒特征库的步骤包括:基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。
124.进一步地,所述基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库的步骤包括:响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;将所述第一病毒特征码存储至第一字符串数组;响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;将所述第二病毒特征码存储至第二字符串数组;基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。
125.进一步地,所述获取第一病毒特征码和第二病毒特征码的步骤包括:从所述第一字符串数组中获取所述第一病毒特征码,从所述第二字符串数组中获取所述第二病毒特征码。
126.进一步地,所述方法还包括:确定所述文件流片段的数据长度值;依据所述数据长度值确定所述预设文件缓冲区容量阈值。
127.进一步地,所述方法还包括:响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。
128.进一步地,所述方法还包括:响应于所述一次病毒查杀异常,删除所述文件流片段。
129.进一步地,所述方法还包括:响应于所述二次病毒查杀异常,删除所述磁盘文件。
130.进一步地,所述接收文件流片段的步骤包括:接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。
131.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的
步骤包括:判断所述文件流片段是否为首次读取;响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;将所述第一病毒特征码与所述文件流片段进行匹配;响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片段,将所述合并待检片段存储至预设第三缓冲区;将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。
132.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述合并待检片段与所述第一病毒特征码不匹配,确定所述一次病毒查杀完成。
133.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。
134.进一步地,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区和所述预设第三缓冲区。
135.进一步地,所述采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀的步骤包括:确定所述第二病毒特征码的最大长度;基于所述最大长度切分所述磁盘文件,生成待检队列;采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀。
136.进一步地,所述基于所述最大长度切分所述磁盘文件,生成待检队列的步骤包括:基于所述最大长度,确定切分单位长度;依据所述切分单位长度和磁盘文件,计算切片数量;结合所述切分单位长度和所述切片数量,创建所述待检队列。
137.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:确定所述待检队列的起始位;从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。
138.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤还包括:响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀异常;响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。
139.进一步地,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:响应于所述二次病毒查杀完成,清空所述待检队列。
140.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
141.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
142.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
143.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
144.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
145.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
146.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
147.以上对本发明所提供的一种文件动态病毒检测方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说
明书内容不应理解为对本发明的限制。

技术特征:
1.一种文件动态病毒检测方法,其特征在于,包括:构建与文件的长度匹配的病毒特征库;从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。2.根据权利要求1所述的方法,其特征在于,所述构建与文件的长度匹配的病毒特征库的步骤包括:获取病毒识别信息;所述病毒识别信息包括病毒识别特征码;基于所述文件的长度,对所述病毒识别特征码进行分类,构建所述病毒特征库。3.根据权利要求2所述的方法,其特征在于,所述基于所述文件的长度,对所述病毒识别特征码进行分类,构建病毒特征库的步骤包括:基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库。4.根据权利要求3所述的方法,其特征在于,所述基于所述病毒识别特征码的长度与预设文件缓冲区容量阈值进行分类存储,构建所述病毒特征库的步骤包括:响应于所述病毒识别特征码的长度不大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第一病毒特征码;将所述第一病毒特征码存储至第一字符串数组;响应于所述病毒识别特征码的长度大于预设文件缓冲区容量阈值,将所述病毒识别特征码确定为所述第二病毒特征码;将所述第二病毒特征码存储至第二字符串数组;基于所述第一字符串数组和第二字符串数组,构建所述病毒特征库。5.根据权利要求4所述的方法,其特征在于,所述获取第一病毒特征码和第二病毒特征码的步骤包括:从所述第一字符串数组中获取所述第一病毒特征码,从所述第二字符串数组中获取所述第二病毒特征码。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:确定所述文件流片段的数据长度值;依据所述数据长度值确定所述预设文件缓冲区容量阈值。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述二次病毒查杀完成,将所述磁盘文件标记为安全文件。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述一次病毒查杀异常,删除所述文件流片段。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述二次病毒查杀异常,删除所述磁盘文件。10.根据权利要求1所述的方法,其特征在于,所述接收文件流片段的步骤包括:
接收所述文件流片段,将所述文件流片段存入预设第一数据缓冲区。11.根据权利要求10所述的方法,其特征在于,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤包括:判断所述文件流片段是否为首次读取;响应于所述文件流片段为首次读取,将所述文件流片段存储至预设第二缓冲区;将所述第一病毒特征码与所述文件流片段进行匹配;响应于所述第一病毒特征码与所述文件流片段不匹配,将所述预设第一缓冲区的文件流片段与所述预设第二缓冲区中的文件流片段合并,生成合并待检片段,将所述合并待检片段存储至预设第三缓冲区;将所述合并待检片段与所述第一病毒特征码进行匹配,以进行一次病毒查杀。12.根据权利要求11所述的方法,其特征在于,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述合并待检片段与所述第一病毒特征码不匹配,确定所述一次病毒查杀完成。13.根据权利要求11所述的方法,其特征在于,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述第一病毒特征码与所述文件流片段匹配,或响应于所述合并待检片段与所述第一病毒特征码匹配,确定所述一次病毒查杀异常。14.根据权利要求10所述的方法,其特征在于,所述采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀的步骤还包括:响应于所述一次病毒查杀完成,清空所述预设第一缓冲区、所述预设第二缓冲区和所述预设第三缓冲区。15.根据权利要求1所述的方法,其特征在于,所述采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀的步骤包括:确定所述第二病毒特征码的最大长度;基于所述最大长度切分所述磁盘文件,生成待检队列;采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀。16.根据权利要求15所述的方法,其特征在于,所述基于所述最大长度切分所述磁盘文件,生成待检队列的步骤包括:基于所述最大长度,确定切分单位长度;依据所述切分单位长度和磁盘文件,计算切片数量;结合所述切分单位长度和所述切片数量,创建所述待检队列。17.根据权利要求16所述的方法,其特征在于,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:确定所述待检队列的起始位;从所述起始位读取若干个的切分单位长度的文件片段,确定为待检片段;将所述待检片段与所述第二病毒特征码进行匹配,以进行所述二次病毒查杀。18.根据权利要求17所述的方法,其特征在于,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤还包括:
响应于所述待检片段与所述第二病毒特征码匹配,确定所述二次病毒查杀异常;响应于所述待检片段与所述第二病毒特征码不匹配,确定所述二次病毒查杀完成。19.根据权利要求16所述的方法,其特征在于,所述采用所述第二病毒特征码对所述待检队列进行所述二次病毒查杀的步骤包括:响应于所述二次病毒查杀完成,清空所述待检队列。20.一种文件动态病毒检测装置,其特征在于,包括:构建模块,用于构建与文件的长度匹配的病毒特征库;获取模块,用于从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;接收模块,用于响应于所述文件上传操作,接收文件流片段;一次病毒查杀模块,用于采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;写入模块,用于响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;二次病毒查杀模块,用于采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。21.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至19中任一项所述的文件动态病毒检测方法的步骤。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19中任一项所述的文件动态病毒检测方法的步骤。

技术总结
本发明实施例提供了一种文件动态病毒检测方法、装置、电子设备和存储介质,涉及计算机系统及存储技术领域,包括:构建与文件的长度匹配的病毒特征库;从所述病毒特征库中,获取第一病毒特征码和第二病毒特征码,所述第一病毒特征码的长度小于所述第二病毒特征码的长度;响应于所述文件上传操作,接收文件流片段;采用所述第一病毒特征码对所述文件流片段进行一次病毒查杀;响应于所述一次病毒查杀完成,将所述文件流片段写入预设磁盘,生成磁盘文件;采用所述第二病毒特征码对所述磁盘文件进行二次病毒查杀。通过本发明实施例可以节省病毒查杀时的内存消耗,同时提升扫描效率。同时提升扫描效率。同时提升扫描效率。


技术研发人员:陈春风 王晓通
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.08.14
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐