计算机系统的修复


     

  2.5.1 计算机病毒感染后的一般修复处理方法
  一旦遇到计算机病毒破坏了系统也不必惊惶失措,采取一些简单的办法可以杀除大多数的计算机病毒,恢复被计算机病毒破坏的系统。
  下面介绍计算机病毒感染后的一般修复处理方法:
  1、首先必须对系统破坏程度有一个全面的了解,并根据破坏的程度来决定采用有效的计算机病毒清除方法和对策。
  如果受破坏的大多是系统文件和应用程序文件,并且感染程度较深,那么可以采取重装系统的办法来达到清除计算机病毒的目的。而对感染的是关键数据文件,或比较严重的时候,比如硬件被CIH计算机病毒破坏,就可以考虑请防杀计算机病毒专家来进行清除和数据恢复工作。
  2、修复前,尽可能再次备份重要的数据文件。
  目前防杀计算机病毒软件在杀毒前大多都能够保存重要的数据和感染的文件,以便能够在误杀或造成新的破坏时可以恢复现场。但是对那些重要的用户数据文件等还是应该在杀毒前手工单独进行备份,备份不能做在被感染破坏的系统内,也不应该与平时的常规备份混在一起。
  3、启动防杀计算机病毒软件,并对整个硬盘进行扫描。某些计算机病毒在Windows 95/98状态下无法完全清除(如CIH计算机病毒),此时我们应使用事先准备的未感染计算机病毒的DOS系统软盘启动系统,然后在DOS下运行相关杀毒软件进行清除。
  4、发现计算机病毒后,我们一般应利用防杀计算机病毒软件清除文件中的计算机病毒,如果可执行文件中的计算机病毒不能被清除,一般应将其删除,然后重新安装相应的应用程序。
  5、杀毒完成后,重启计算机,再次用防杀计算机病毒软件检查系统中是否还存在计算机病毒,并确定被感染破坏的数据确实被完全恢复。
  6、此外,对于杀毒软件无法杀除的计算机病毒,还应将计算机病毒样本送交防杀计算机病毒软件厂商的研究中心,以供详细分析。

  2.5.2 实例:手工恢复被CIH计算机病毒破坏的硬盘数据
  1、基础知识
  (1DOS兼容系统硬盘数据的构成
  主分区和扩展分区结构基本相似,以下以主分区为例。
  主引导记录(MBR):MBR占一个扇区,在0柱面01扇区,由代码区和分区表构成。其中代码区可以由FDISK /MBR重建。
  系统扇区:0柱面02扇区到0柱面063扇区,共62个扇区。
  引导扇区(BOOT):0柱面11扇区。这是我们过去称的DOS引导区。也占一个扇区。
  隐藏扇区:0柱面11扇区开始,如果是FAT16那么占一个扇区,如果是FAT32则由此占32个扇区。
  文件分配表(FAT):每个有效的FAT结构区包含两个完全相同的拷贝:FAT1FAT2 FAT16的第一FAT表一般均在0柱面12扇区,FAT32的第一FAT表在0柱面033扇区。FAT表是记录文件占用扇区连接的地方,如果两个FAT表都坏了,后果不堪设想。由于FAT表的长度与当前分区的大小有关所以FAT2 的地址是需要计算的。
  FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32Kb字节。逻辑盘容量最大为2047MBFAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4Kb字节。逻辑盘容量最小为2048MB。有关计算公式为:
  每个扇区长度=512字节
  簇容量=每扇区长度×每簇扇区数
  总簇数=逻辑盘容量/簇容量
  总簇数=FAT表长度(字节)/每个表项长度(字节)-2
  FAT表长度=逻辑盘容量/簇容量×每个表项长度
  FAT表的开始由介质描述符加上一串“已占用”标志组成:
  FAT16硬盘:F8 FF FF 7F
  FAT32硬盘:F8 FF FF 0F FF FF FF 0F
  根目录扇区(ROOT):这里记录了根目录里的目录文件项等,ROOT区跟在FAT2后面。
  数据区:跟在根目录扇区后面,这才是真正保存文件内容的地方。
  (2)主引导记录简单说明:
  主引导记录是硬盘引导的起点,其分区表中比较重要的有3个标志,在偏移0x01BE处的字节,0x80 表示系统可引导,且整个分区表只能有一个分区的标志为0x80;对于C分区,在偏移0x01C2处的字节,FAT160x06FAT320x0C;结尾的0x55 0xAA标记,用来表示主引导记录是一个有效的记录。
  2.一个基本恢复被CIH破坏硬盘数据的例子
  其实,无论主引导记录还是隐含扇区还是启动扇区,都不重要,这些扇区的重建都比较容易。对数据恢复来说,能否成功的找回数据文件是重要的。另外,由于FAT表记录了文件在硬盘上占用扇区的链表,如果2FAT表都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件就相当困难了。
  恢复被CIH破坏的硬盘数据的基本思路是:
  (1FAT2没有损坏的情况,用FAT2覆盖FAT1
  (2FAT2也已经损坏的情况,一般是只期待找回其中某些关键的文件了。我们最期待的是这些文件是连续的。如果不连续的话,也并非没有可能,但这往往还要知道文件的一些细节,包括对一些文件本身的连接结构有了解。如果FAT2没有完全破坏,还是有一定用处的,另外,一般来说,FAT16的硬盘因为FAT表扇区比较靠前,破坏的比较严重,一般两个FAT表都会被破坏了,恢复起来比较困难。另外小容量的硬盘也是很难恢复。
  在进行数据恢复之前准备好软盘3张:
  DISK1 WIN98启动盘(带DEBUG.EXE
  DISK2NORTON DISKEDIT等工具(此盘不要写保护)
  DISK3DOS下杀CIH的工具
  找一台完好无损的计算机,将待恢复的的硬盘接上,开机,进入SETUP,检测硬盘,把参数记下:
  CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LBA
  用准备好的软盘启动并输入:
  A:\>C:
  显示Invalid drive specification(无效的盘标识符)
  用FDISK /MBR命令重建主引导记录,并重新用软盘引导。此时已经看的见C:硬盘。运行DISKEDIT,启动过程中显示Invalid media type reading DRIVER C。用DEBUG 清空分区表,并置0x800x55 0xAA标志。重新启动,再运行DISKEDIT,显示设定为READ ONLY,没关系,把CONFIGURATION中的只读选项去掉,存盘,好了,可以编辑了。
  我们期待FAT2没有损坏,以用FAT2覆盖FAT1,在这个时候DISKEDIT要比DEBUG容易的多,在FIND OBJECT中选择 FAT,查一下起始扇区,在0柱面6814扇区,偏移0x0000的字节:F8 FF FF 0F FAT32的)。该项显示表明FAT2没坏。其实如果不用DISKEDIT的可以用DEBUG查,偏移0000F8 FF FF 0F。记下了该扇区:0柱面6814扇区备用。FAT1一般前面已经被破坏了,但后面应该还在,这可以作为检查。因为是32位的,FAT1 一般在0柱面133扇区。
  接下来再在DISKEDITFIND中查找IO SYSIO SYS中要有空格)以查找根目录扇区(ROOT)。找到后观察,是否有C:\ 下常见文件,以确定根目录扇区没被破坏。
  有了根目录扇区后就该计算FAT表的长度了,因为FAT2是到ROOT前一扇区为止且FAT1FAT2的长度相同,所以可以非常简单地计算出FAT表的长度。然后可以用FAT2覆盖FAT1,这里用DEBUG还是DISKEDIT都可以,如果用DEBUG一般是用INT 25读绝对扇区,再用INT 26写入,不过可能要分几次。用DISKEDIT可以标记FAT2的内容,然后复制下来,再写到FAT1
  然后可以恢复主引导记录、隐含扇区和启动扇区。可以先用NDD 修复分区表,然后可以考虑用标准覆盖法,如果你希望下一步由NORTON Utilities来接手,这些都可以不做。用软盘启动后用NORTON Utilities扫描C盘,文件基本恢复。对C盘杀毒后,就基本完成对启动盘的修复工作。
  然后再修复D盘。再回到DOS,用DEBUG查找结束标志为55AA 的扇区,由结构判定是否为扩展分区。并算出大小来添入分区表。当然,DISKEDIT等工具可以很好的完成这一工作。
  3.经验总结
  恢复数据要本着几项原则:
  (1)先备份;
  (2)优先抢救最关键的数据;
  (3)在稳妥的情况下先把最稳定的鸡蛋捞出来,理应先修复扩展分区,再修复C,最好修复一部分备份一部分;
  (4)要先作好准备,不要忙中出错。
  其实看来,如果FAT2没有损坏的情况下,恢复C盘数据是非常容易的,可以编程实现。如果FAT2损坏了,最容易恢复的当然是只占用一个扇区的小文件和连续占用扇区的文件;如果扇区占用不连续的,比较容易恢复的是文本文件。
  在此需要提醒读者,如果您没有具备相当的专业知识,千万不要轻易尝试,否则可能会造成数据的彻底无法恢复。大多数情况下应该请计算机病毒防范专家来恢复被计算机病毒破坏的硬盘中的数据。

  2.5.3 计算机系统修复应急计划
  就象解决计算机2000年问题一样,对计算机病毒实施的技术防范,任何一个小小的隐患,都可能导致巨大的损失。所以,防范计算机病毒工作也需要制定应急计划,一旦发生了计算机病毒发作,按预定的应急计划行事,将可能造成的损失降到最小程度。
  一个应急计划必须包括人员、分工以及各项具体实施步骤和物质准备。
  1、人员准备:
  首先需要指定一个全局的负责人,一般由领导担当,负责各项工作的分和协调。
  参加应急工作的人员一般应包括:网络管理员、技术负责人员、设备维护管理人员和使用者(用户)或值班用户。同时,在发现新的计算机病毒疫情后,可以通过防杀计算机病毒厂商及寻求计算机病毒防范专家的支持。
  2、应急计划的实施步骤
  应急计划中必需包括的主要工作有:
  (1)对染毒的计算机和网络进行隔离
  由网络管理员完成,网络使用者提供信息,辅助实施。
  (2)向主管部门汇报计算机病毒疫情
  一般可以由全局负责人向计算机病毒防范主管部门,或者计算机病毒防范体系中心汇报计算机病毒疫情,包括发作的时间、规模、计算机病毒名称、传播速度以及造成的破坏。
  (3)确定计算机病毒疫情规模
  通常由技术负责人员和网络使用者完成这项工作,可以在不扩大传染范围的情况下与隔离工作同步进行。
  (4)破坏情况估计及制定抢救策略
  在全局负责人的领导和计算机病毒防范专家的指导下,由全体人员参加,确定破坏的情况以及制定抢救策略,如重装系统、恢复备份等方法。
  (5)实施计算机网络系统恢复计划和数据抢救恢复计划
在计算机病毒防范专家的指导下,由系统管理员、设备维护管理人员和使用者共同实施恢复计划和数据抢救计划。
  3、善后工作
  将网络恢复正常运作,并总结发生计算机病毒疫情后的应急计划实施情况和效果,不断修改应急计划,使得它能够根好地解决问题,降低损失。
  4、此外,在应急计划中还必需包括救援物质、计算机软硬件备件的准备,以及参加人员的联络表等,以便使得发生计算机病毒疫情后能够迅速地召集人手,备件到位,快速进入应急状态。
  在此给出的只是制定应急计划所必须考虑的基本内容,用户还应该结合自身的情况,制定合适的应急计划方案。