7.5.2 常见恶意代码清除技术

7.5.2 常见恶意代码清除技术

将感染恶意代码的文件中的恶意代码模块摘除,并使之恢复为可以正常使用的文件的过程称为恶意代码清除(杀毒)。要知道,并不是所有的染毒文件都可以安全地清除掉恶意代码,也不是所有文件在清除恶意代码后都能恢复正常。由于清除方法不正确,在对染毒文件进行清除时有可能将文件破坏。有些时候,只有做低级格式化才能彻底清除恶意代码,但却会丢失大量文件和数据。不论采用手工还是使用专业杀毒软件清除恶意代码,都是危险的,有时可能出现“不治病”反而“赔命”的后果,将有用的文件彻底破坏了。

根据恶意代码编制原理的不同,恶意代码清除的原理也是不同的,大概可分为引导区病毒、文件型病毒、蠕虫和木马等病毒的清除原理。本节主要以引导区病毒、文件型病毒为例介绍恶意代码清除原理。

1.引导区病毒的清除原理

引导区病毒是一种只能在DOS系统发挥作用的陈旧恶意代码。引导区病毒感染时的攻击部位和破坏行为包括:

硬盘主引导扇区;

硬盘或软盘的BOOT扇区。

为保存原主引导扇区、BOOT扇区,病毒可能随意将它们写入其他扇区,而破坏这些扇区。

引导区病毒发作时,执行破坏行为造成种种损坏。

根据引导区病毒感染和破坏部位的不同,可以按以下方法进行修复。

第一种:硬盘主引导扇区染毒。

硬盘引导区染毒是可以修复的,修复步骤如下:

(1)用干净的软盘启动系统;

(2)寻找一台同类型、硬盘分区相同的无毒计算机,将其硬盘主引导扇区写入一张软盘中;

(3)将此软盘插入被感染计算机,将其中采集的主引导扇区数据写入染毒数据,即可修复。

第二种:硬盘、软盘BOOT扇区染毒。

这种情况也是可以修复的。修复方法是寻找与染毒盘相同版本的干净系统软盘,执行SYS命令。

第三种:目录区修复。

如果引导区病毒将原主引导扇区或BOOT扇区覆盖式写入根目录区,被覆盖的根目录区完全损坏,不可能修复。如果仅仅覆盖式写入第一FAT表时,第二FAT表未被破坏,则可以修复。修复方法是将第二FAT表复制到第一FAT表中。

第四种:占用空间的回收。引导区病毒占用的其他部分磁盘空间,一般都标识为“坏簇”或“文件结束簇”。系统不能再使用标示后的磁盘空间,当然,这些被标示的空间也是可以收回的。

2.文件型病毒的清除原理

在文件型病毒中,覆盖型病毒是最恶劣的。覆盖性文件病毒硬性覆盖了一部分宿主程序,使宿主程序部分信息丢失,即使将病毒杀掉,程序也已经不能修复。对覆盖型病毒感染的文件只能将其彻底删除,没有挽救原文件的余地。如果没有备份,将造成很大的损失。

除了覆盖型病毒之外,其他感染.com和.exe的文件型病毒都可以被清除干净。因为病毒在感染原文件时没有丢弃原始信息,既然病毒能在内存中恢复被感染文件的代码并予以执行,则可以按照病毒传染的逆过程将病毒清除干净,并恢复到其原来的功能。

如果染毒的文件有备份,将备份的文件复制后也可以简单地恢复原文件,即不需要专门清除。执行文件若加上自修复功能,在遇到病毒的时候,程序可以自行复原;如果文件没有加上任何防护,就只能够靠杀毒软件清除,但是,用杀毒软件清除病毒也不能保证完全复原原有的程序功能,甚至有可能出现越清除越糟糕,以至于造成在清除病毒之后文件反而不能执行的局面。因此,对于重要资料必须养成随时备份的操作习惯以确保万无一失。

由于某些病毒会破坏系统数据,如破坏目录结构和FAT,因此在清除完病毒之后,还要进行系统维护工作。可见,病毒的清除工作与系统的维护工作往往是分不开的。

3.清除交叉感染病毒

有时一台计算机内同时潜伏着几种病毒,当一个健康程序在这台计算机上运行时,会感染多种病毒,引起交叉感染。

多种病毒在一个宿主程序中形成交叉感染后,如果在这种情况下杀毒,一定要格外小心,必须分清病毒感染的先后顺序,先清除感染的病毒,否则会把程序“杀死”。虽然病毒被杀死了,但程序也不能使用了。

一个宿主程序交叉感染多个病毒的结构如图7.5所示。

从图7.5中可以看出病毒的感染顺序如下:

图7.5 病毒交叉感染(头部和尾部)示意图

病毒1→病毒2→病毒3

当运行被感染的宿主程序时,病毒夺取计算机的控制权,先运行病毒程序,顺序如下:

病毒3→病毒2→病毒1

在杀毒时,应先清除病毒3,然后清除病毒2,最后清除病毒1,层次分明,不能混乱,否则会破坏宿主程序。