处理计算机病毒的方法及装置 【技术领域】
本申请涉及计算机技术领域, 特别是涉及一种处理计算机病毒的方法及装置。背景技术 计算机病毒是编制或者在计算机程序中插入的破坏计算机功能的数据, 其会影响 计算机的正常使用并且能够自我复制, 通常以一组计算机指令或者程序代码的形式呈现。 而杀毒引擎就是一套判断特定程序行为是否为病毒程序 ( 包括可疑程序 ) 的技术机制。杀 毒引擎是杀毒软件的主要部分, 是检测和发现病毒的程序, 而病毒库是已经发现的病毒的 特征集合。 在杀毒过程中, 用病毒库中的特征去对照机器中的所有程序或文件, 对于符合这 些特征的程序或文件, 判定为病毒。
现有技术中, 一些恶意病毒为了避免被杀毒引擎解析和扫描, 通常事先被加壳, 这 些经过加壳后的文件称为复合文件。由于杀毒引擎具有的查杀功能不同, 当某个杀毒引擎 不具备脱壳的功能时, 则难以对这些复合病毒文件进行查杀, 从而降低了系统的安全性 ; 并
且, 当有多个杀毒引擎存在时, 如果其中有至少两个杀毒引擎都具备脱壳的功能, 则这些杀 毒引擎需要分别对复合文件进行脱壳操作, 从而浪费了系统资源。 发明内容
本申请实施例提供了一种处理计算机病毒的方法及装置, 以解决现有杀毒引擎在 查杀复合文件时, 容易降低系统安全性且浪费系统资源的问题。
为了解决上述技术问题, 本申请实施例公开了如下技术方案 :
一种处理计算机病毒的方法, 包括 :
获取待查杀文件 ;
对所述待查杀文件中的复合文件进行解析, 解析后的待查杀文件和所述待查杀文 件中的非复合文件组成更新后的待查杀文件 ;
调用预先设置的多个杀毒引擎对所述更新后的待查杀文件进行扫描, 获得查杀结 果。
还包括 : 预先保存对每一种复合文件进行解析的解析方式 ;
所述对所述待查杀文件中的复合文件进行解析包括 :
识别所述待查杀文件是否为复合文件 ;
对识别为复合文件的待查杀文件, 调用与所述复合文件对应的解析方式对所述复 合文件进行解析。
所述复合文件包括 : 普通压缩文件和可移植执行体 PE 压缩文件 ;
所述普通压缩文件包括 : 扩展名为 rar 和扩展名为 zip 的压缩文件 ;
所述 PE 压缩文件包括 : 自解压的压缩文件和 UPS 加壳的压缩文件。
对所述待查杀文件中的普通压缩文件进行解析包括 :
读取所述待查杀文件中的文件扩展名 ;当读取的文件扩展名与普通压缩文件的文件扩展名类型匹配时, 确定所读取的文 件扩展名对应的文件为普通压缩文件 ;
按照普通压缩文件的解压方式对确定的普通压缩文件进行解压缩。
对所述待查杀文件中的 PE 压缩文件进行解析包括 :
读取所述待查杀文件中的资源信息 ;
当读取的资源信息与 PE 压缩文件的文件类型匹配时, 确定所读取的资源信息对 应的文件为 PE 压缩文件 ;
按照 PE 压缩文件的解压方式对确定的 PE 压缩文件进行解压缩。
所述预先设置的多个杀毒引擎包括至少一个第一杀毒引擎和至少一个第二杀毒 引擎 ;
所述调用预先设置的多个杀毒引擎对所述更新后的待查杀文件进行扫描包括 :
调用所述第一杀毒引擎, 对所述更新后的待查杀文件进行扫描, 获得第一扫描结 果, 所述第一扫描结果中包括所述更新后的待查杀文件中的确定文件 ;
调用所述第二杀毒引擎, 对所述更新后的待查杀文件中除所述确定文件以外的其 它文件进行扫描, 获得第二扫描结果。
一种处理计算机病毒的装置, 包括 :
获取单元, 用于获取待查杀文件 ;
解析单元, 用于对所述待查杀文件中的复合文件进行解析, 解析后的待查杀文件 和所述待查杀文件中的非复合文件组成更新后的待查杀文件 ;
扫描单元, 用于调用预先设置的多个杀毒引擎对所述更新后的待查杀文件进行扫 描, 获得查杀结果。
还包括 :
保存单元, 用于预先保存对每一种符合文件进行解析的解析方式 ;
所述解析单元包括 :
文件识别子单元, 用于识别所述待查杀文件是否为复合文件 ;
调用解析子单元, 用于对识别为复合文件的待查杀文件, 调用与所述复合文件对 应的解析方式对所述复合文件进行解析。
所述解析单元包括 :
普通压缩文件解析单元, 用于对所述待查杀文件中的普通压缩文件进行解析, 所 述普通压缩文件包括扩展名为 rar 和扩展名为 zip 的压缩文件 ;
PE 压缩文件解析单元, 用于对所述待查杀文件中的 PE 压缩文件进行解析, 所述 PE 压缩文件包括自解压的压缩文件和 UPS 加壳的压缩文件。
所述普通压缩文件解析单元包括 :
扩展名读取子单元, 用于读取所述待查杀文件中的文件扩展名 ;
普通压缩文件确定子单元, 用于当读取的文件扩展名与普通压缩文件的文件扩展 名类型匹配时, 确定所读取的文件扩展名对应的文件为普通压缩文件 ;
普通文件解压缩子单元, 用于按照普通压缩文件的解压方式对确定的普通压缩文 件进行解压缩 ;
所述 PE 压缩文件解析单元包括 :资源信息读取子单元, 用于读取所述待查杀文件中的资源信息 ;
PE 压缩文件确定子单元, 用于当读取的资源信息与 PE 压缩文件的文件类型匹配 时, 确定所读取的资源信息对应的文件为 PE 压缩文件 ;
PE 文件解压缩子单元, 用于按照 PE 压缩文件的解压方式对确定的 PE 压缩文件进 行解压缩。
所述预先设置的多个杀毒引擎包括至少一个第一杀毒引擎和至少一个第二杀毒 引擎, 所述扫描单元包括 :
第一调用扫描子单元, 用于调用所述第一杀毒引擎, 对所述更新后的待查杀文件 进行扫描, 获得第一扫描结果, 所述第一扫描结果中包括所述更新后的待查杀文件中的确 定文件 ;
第二调用扫描子单元, 用于调用所述第二杀毒引擎, 对所述更新后的待查杀文件 中除所述确定文件以外的其它文件进行扫描, 获得第二扫描结果。
由上述实施例可以看出, 本申请实施例获取待查杀文件, 对待查杀文件中的复合 文件进行解析, 解析后的待查杀文件和待查杀文件中的非复合文件组成更新后的待查杀文 件, 调用预先设置的多个杀毒引擎对更新后的待查杀文件进行扫描, 获得查杀结果。 应用本 申请实施例对计算机病毒进行扫描时, 由于预先对待查杀文件中的复合文件进行解析, 即 对加壳文件进行脱壳, 再由杀毒引擎进行查杀, 因此对于不具备脱壳能力的杀毒引擎也可 以对文件进行查杀, 提高系统的安全性 ; 当系统中存在多个具有脱壳功能的杀毒引擎时, 由 于统一对待查杀文件中的复合文件进行解析, 因此无需每个杀毒引擎都对复合文件进行解 析, 节约了系统资源。 附图说明 为了更清楚地说明本申请实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 对于本领域普通技术人员而 言, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1 为本申请处理计算机病毒的方法的第一实施例流程图 ;
图 2 为本申请处理计算机病毒的方法的第二实施例流程图 ;
图 3 为本申请处理计算机病毒的方法的第三实施例流程图 ;
图 4 为本申请处理计算机病毒的装置的第一实施例框图 ;
图 5 为本申请处理计算机病毒的装置的第二实施例框图。
具体实施方式
本发明如下实施例提供了一种处理计算机病毒的方法及装置。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案, 并使本发明实 施例的上述目的、 特征和优点能够更加明显易懂, 下面结合附图对本发明实施例中技术方 案作进一步详细的说明。
参见图 1, 为本申请处理计算机病毒的方法的第一实施例流程图 :
步骤 101 : 获取待查杀文件。
步骤 102 : 对待查杀文件中的复合文件进行解析, 解析后的待查杀文件和待查杀文件中的非复合文件组成更新后的待查杀文件。
其中, 复合文件包括普通压缩文件和 PE(Portable Execute, 可移植执行体 ) 压缩 文件 ; 普通压缩文件可以具体包括 : 扩展名为 rar 和扩展名为 zip 的压缩文件 ; PE 压缩文件 可以具体包括自解压的压缩文件和 UPS 加壳的压缩文件。
对待查杀文件中的普通压缩文件进行解析时, 读取待查杀文件中的文件扩展名, 当读取的文件扩展名与普通压缩文件的文件扩展名类型匹配时, 确定所读取的文件扩展名 对应的文件为普通压缩文件, 按照普通压缩文件的解压方式对确定的普通压缩文件进行解 压缩 ; 对待查杀文件中的 PE 压缩文件进行解析时, 读取待查杀文件中的资源信息, 当读取 的资源信息与 PE 压缩文件的文件类型匹配时, 确定所读取的资源信息对应的文件为 PE 压 缩文件, 按照 PE 压缩文件的解压方式对确定的 PE 压缩文件进行解压缩。
步骤 103 : 调用预先设置的多个杀毒引擎对更新后的待查杀文件进行扫描, 获得 查杀结果。
上述实施例由于预先对待查杀文件中的复合文件进行解析, 即对加壳文件进行脱 壳, 再由杀毒引擎进行查杀, 因此对于不具备脱壳能力的杀毒引擎也可以对文件进行查杀, 提高系统的安全性 ; 当系统中存在多个具有脱壳功能的杀毒引擎时, 由于统一对待查杀文 件中的复合文件进行解析, 因此无需每个杀毒引擎都对复合文件进行解析, 节约了系统资 源。 参见图 2, 为本申请处理计算机病毒的方法的第二实施例流程图, 该实施例以预 先设置了第一杀毒引擎和第二杀毒引擎为例, 示出了对待查杀文件统一解析后再杀毒的过 程:
步骤 201 : 预先保存对每一种复合文件进行解析的解析方式。
一些恶意病毒为了避免被杀毒引擎解析和扫描, 通常事先被加壳, 这些经过加壳 后的文件称为复合文件。复合文件根据其类型的不同采用不同的解析方式进行解析, 解析 的过程就是脱壳的过程, 解析的目的是为了获得未被加壳前的数据。
本申请实施例中, 复合文件可以包括普通压缩文件和 PE 压缩文件 ; 普通压缩文件 可以具体包括 : 扩展名为 rar 和扩展名为 zip 的压缩文件 ; PE 压缩文件可以具体包括自解 压的压缩文件和 UPS 加壳的压缩文件, 自解压的压缩文件指该文件的压缩包内包含解压缩 文件, 根据该解压缩文件可以对文件进行解压缩, UPS 加壳的压缩文件指将程序指令进行压 缩, 并在文件头中加入解压缩信息, 根据该解压信息可以对文件进行解压缩。
步骤 202 : 获取待查杀文件。
步骤 203 : 识别待查杀文件是否为复合文件。
根据步骤 201 中定义的复合文件可知, 对于待查杀文件中的每一个文件, 可以先 识别其是否为普通压缩文件, 如果不是, 再识别其是否为 PE 压缩文件, 如果不是, 将该文件 确定为非复合文件, 即可以直接由杀毒引擎进行病毒扫描的文件。 根据上述识别过程, 可以 识别出每个待查杀文件是普通压缩文件、 PE 压缩文件、 或非复合文件。
步骤 204 : 对识别为复合文件的待查杀文件, 调用与该复合文件对应的解析方式 对该复合文件进行解析, 解析后的待查杀文件和待查杀文件中的非复合文件组成更新后的 待查杀文件。
其中, 对待查杀文件中的普通压缩文件进行解析时, 读取待查杀文件中的文件扩
展名, 当读取的文件扩展名与普通压缩文件的文件扩展名类型匹配时, 确定所读取的文件 扩展名对应的文件为普通压缩文件, 按照普通压缩文件的解压方式对确定的普通压缩文件 进行解压缩 ; 对待查杀文件中的 PE 压缩文件进行解析时, 读取待查杀文件中的资源信息, 当读取的资源信息与 PE 压缩文件的文件类型匹配时, 确定所读取的资源信息对应的文件 为 PE 压缩文件, 按照 PE 压缩文件的解压方式对确定的 PE 压缩文件进行解压缩。
步骤 205 : 调用第一杀毒引擎, 对更新后的待查杀文件进行扫描, 获得第一扫描结 果, 该第一扫描结果中包括更新后的待查杀文件中的确定文件。
本申请实施例中, 第一杀毒引擎和第二杀毒引擎可以具体为针对不同类型文件进 行查杀的文件, 第一杀毒引擎和第二杀毒引擎之间可以采用并行查杀的方式, 即当第一杀 毒引擎在查杀过程中, 可以将已查杀过的文件中的未确定文件输入到第二杀毒引擎中进行 查杀, 而不必等到第一杀毒引擎查杀完所有待查杀文件, 再由第二杀毒引擎进行查杀。 更进 一步, 如果第一杀毒引擎至少有两个, 则至少两个第一杀毒引擎之间的查杀过程也采用前 述并行查杀的方式。
其 中, 第一杀毒引擎可以包括 : 用 于 查 杀 PE 类 型 文 件 的 云 查 杀 引 擎, 和/或 QVM(Qihoo Virtual Machine, 人工智能引擎 ) 引擎。 步骤 206 : 调用第二杀毒引擎, 对更新后的待查杀文件中除确定文件以外的其它 文件进行扫描, 获得第二扫描结果。
第二杀毒引擎主要指对除经过第一杀毒引擎查杀后的确定文件以外的其它文件 进行扫描的杀毒引擎, 需要说明的是, 该第二杀毒引擎可以具有对所有类型文件进行查杀 的能力, 当本实施例通采用并行查杀的方式时, 可以减少每一种杀毒引擎的查杀数量, 从而 提高查杀速度, 以便有效利用系统资源。本实施例中第二杀毒引擎可以包括至少一个杀毒 引擎, 例如, 该第二杀毒引擎可以为 Bit Defender 杀毒引擎, 和 / 或小红伞杀毒引擎, 和/ 或其它现有已存在的杀毒引擎等。
参见图 3, 为本申请处理计算机病毒的方法的第三实施例流程图, 该实施例以复合 文件为普通压缩和 PE 压缩文件为例, 示出了对待查杀文件进行扫描的过程 :
步骤 301 : 预先保存对每一种复合文件进行解析的解析方式。
一些恶意病毒为了避免被杀毒引擎解析和扫描, 通常事先被加壳, 这些经过加壳 后的文件称为复合文件。复合文件根据其类型的不同采用不同的解析方式进行解析, 解析 的过程就是脱壳的过程, 解析的目的是为了获得未被加壳前的数据。
本申请实施例中, 复合文件可以包括普通压缩文件和 PE 压缩文件 ; 普通压缩文件 可以具体包括 : 扩展名为 rar 和扩展名为 zip 的压缩文件 ; PE 压缩文件可以具体包括自解 压的压缩文件和 UPS 加壳的压缩文件, 自解压的压缩文件指该文件的压缩包内包含解压缩 文件, 根据该解压缩文件可以对文件进行解压缩, UPS 加壳的压缩文件指将程序指令进行压 缩, 并在文件头中加入解压缩信息, 根据该解压信息可以对文件进行解压缩。
步骤 302 : 顺序获取待查杀文件中的一个待查杀文件。
步骤 303 : 读取该待查杀文件中的文件扩展名。
步骤 304 : 判断读取的文件扩展名与普通压缩文件的文件扩展名类型是否匹配, 若是, 则执行步骤 305 ; 否则, 执行步骤 306。
本实施例中普通压缩文件的文件扩展名类型包括扩展名为 rar 或 zip 的文件, 因
此读取待查杀文件的文件扩展名后, 判断该文件扩展名是否为 rar 或 zip, 如果是, 则说明 待查杀文件为普通压缩文件, 如果不是, 则进入步骤 306 进行进一步判断。
步骤 305 : 确定所读取的文件扩展名对应的文件为普通压缩文件, 按照普通压缩 文件的解压方式对确定的普通压缩文件进行解压缩, 执行步骤 309。
步骤 306 : 读取该待查杀文件中的资源信息。
在判断完待查杀文件非普通压缩文件后, 进一步判断其是否为 PE 压缩文件, 此时 读取该待查杀文件中的资源信息, 如果读取不到资源信息, 则该待查杀文件为非复合文件, 如果读取到资源文件, 可以进入步骤 307 进行进一步判断。
步骤 307 : 判断读取的资源信息与 PE 压缩文件的文件类型是否匹配, 若是, 则执行 步骤 308 ; 否则, 执行步骤 309。
由于 PE 压缩文件可以具体包括自解压的压缩文件和 UPS 加壳的压缩文件, 其中, 自解压的压缩文件指该文件的压缩包内包含解压缩文件, 根据该解压缩文件可以对文件进 行解压缩, 因此判断读取到的资源信息是否为解压缩文件 ; UPS 加壳的压缩文件指将程序 指令进行压缩, 并在文件头中加入解压缩信息, 根据该解压信息可以对文件进行解压缩, 因 此判断读取到的资源信息是否为头文件中的解压缩信息。
步骤 308 : 确定所读取的资源信息对应的文件为 PE 压缩文件, 按照 PE 压缩文件的 解压方式对确定的 PE 压缩文件进行解压缩, 执行步骤 309。
步骤 309 : 调用预先设置的多个杀毒引擎对解析后的待查杀文件, 以及非复合文 件进行扫描, 获得查杀结果。
本实施中调用多个杀毒引擎对解析后的待查杀文件以及非复合文件进行扫描的 过程与前述第二实施例一致, 在此不再赘述。
步骤 310 : 判断是否查杀完所有文件, 若是, 则结束流程 ; 否则, 返回步骤 302。
与本申请处理计算机病毒的方法的实施例相对应, 本申请还提供了处理计算机病 毒的装置的实施例。
参见图 4, 为本申请处理计算机病毒的装置的第一实施例框图 :
该装置包括 : 获取单元 410、 解析单元 420 和扫描单元 430。
其中, 获取单元 410, 用于获取待查杀文件 ;
解析单元 420, 用于对所述待查杀文件中的复合文件进行解析, 解析后的待查杀文 件和所述待查杀文件中的非复合文件组成更新后的待查杀文件 ;
扫描单元 430, 用于调用预先设置的多个杀毒引擎对所述更新后的待查杀文件进 行扫描, 获得查杀结果。
参见图 5, 为本申请处理计算机病毒的装置的第二实施例框图 :
该装置包括 : 保存单元 510、 获取单元 520、 解析单元 530 和扫描单元 540。
其中, 保存单元 510, 用于预先保存对每一种符合文件进行解析的解析方式 ;
获取单元 520, 用于获取待查杀文件 ;
解析单元 530, 用于对所述待查杀文件中的复合文件进行解析, 解析后的待查杀文 件和所述待查杀文件中的非复合文件组成更新后的待查杀文件 ;
扫描单元 540, 用于调用预先设置的多个杀毒引擎对所述更新后的待查杀文件进 行扫描, 获得查杀结果。其中, 解析单元 530 可以包括 ( 图 5 中未示出 ) :
文件识别子单元, 用于识别所述待查杀文件是否为复合文件 ;
调用解析子单元, 用于对识别为复合文件的待查杀文件, 调用与所述复合文件对 应的解析方式对所述复合文件进行解析。
具体的, 解析单元 530 可以包括 ( 图 5 中未示出 ) : 普通压缩文件解析单元, 用于 对所述待查杀文件中的普通压缩文件进行解析, 所述普通压缩文件包括扩展名为 rar 和扩 展名为 zip 的压缩文件 ; PE 压缩文件解析单元, 用于对所述待查杀文件中的 PE 压缩文件进 行解析, 所述 PE 压缩文件包括自解压的压缩文件和 UPS 加壳的压缩文件。
其中, 所述普通压缩文件解析单元可以包括 : 扩展名读取子单元, 用于读取所述待 查杀文件中的文件扩展名 ; 普通压缩文件确定子单元, 用于当读取的文件扩展名与普通压 缩文件的文件扩展名类型匹配时, 确定所读取的文件扩展名对应的文件为普通压缩文件 ; 普通文件解压缩子单元, 用于按照普通压缩文件的解压方式对确定的普通压缩文件进行解 压缩。
所述 PE 压缩文件解析单元包括 : 资源信息读取子单元, 用于读取所述待查杀文件 中的资源信息 ; PE 压缩文件确定子单元, 用于当读取的资源信息与 PE 压缩文件的文件类型 匹配时, 确定所读取的资源信息对应的文件为 PE 压缩文件 ; PE 文件解压缩子单元, 用于按 照 PE 压缩文件的解压方式对确定的 PE 压缩文件进行解压缩。 其中, 预先设置的多个杀毒引擎包括至少一个第一杀毒引擎和至少一个第二杀毒 引擎, 该扫描单元 540 可以包括 ( 图 5 中未示出 ) : 第一调用扫描子单元, 用于调用所述第 一杀毒引擎, 对所述更新后的待查杀文件进行扫描, 获得第一扫描结果, 所述第一扫描结果 中包括所述更新后的待查杀文件中的确定文件 ; 第二调用扫描子单元, 用于调用所述第二 杀毒引擎, 对所述更新后的待查杀文件中除所述确定文件以外的其它文件进行扫描, 获得 第二扫描结果。
通过对以上实施方式的描述可知, 本申请实施例获取待查杀文件, 对待查杀文件 中的复合文件进行解析, 解析后的待查杀文件和待查杀文件中的非复合文件组成更新后的 待查杀文件, 调用预先设置的多个杀毒引擎对更新后的待查杀文件进行扫描, 获得查杀结 果。应用本申请实施例对计算机病毒进行扫描时, 由于预先对待查杀文件中的复合文件进 行解析, 即对加壳文件进行脱壳, 再由杀毒引擎进行查杀, 因此对于不具备脱壳能力的杀毒 引擎也可以对文件进行查杀, 提高系统的安全性 ; 当系统中存在多个具有脱壳功能的杀毒 引擎时, 由于统一对待查杀文件中的复合文件进行解析, 因此无需每个杀毒引擎都对复合 文件进行解析, 节约了系统资源。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需 的通用硬件平台的方式来实现。基于这样的理解, 本发明实施例中的技术方案本质上或者 说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品可以存 储在存储介质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计算机设备 ( 可以 是个人计算机, 服务器, 或者网络设备等 ) 执行本发明各个实施例或者实施例的某些部分 所述的方法。
本说明书中的各个实施例均采用递进的方式描述, 各个实施例之间相同相似的部 分互相参见即可, 每个实施例重点说明的都是与其他实施例的不同之处。 尤其, 对于系统实
施例而言, 由于其基本相似于方法实施例, 所以描述的比较简单, 相关之处参见方法实施例 的部分说明即可。
以上所述的本发明实施方式, 并不构成对本发明保护范围的限定。任何在本发明 的精神和原则之内所作的修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。