已删除目录项的首字节值为E5H。在可以使用长文件名的FAT32系统中,文件目录项保存该文件的短文件名,长文件名用若干个长文件名目录项保存,长文件名目录项倒序排在文件短目录项前面,全部是采用双字节内码保存的,每一项最多保存十三个字符内码,首字节指明是长文件名的第几项,11字节一般为0FH,12字节指明类型,13字节为校验和,26--27字节为零。
(七)以前版本的 Windows 和DOS与 FAT32 不兼容,不能识别FAT32分区,有些程序也依赖于 FAT16 文件系统,不能和 FAT32 驱动器一道工作。将硬盘转换为 FAT32,就不能再用双引导运行以前版本的 Windows(Windows 95 [Version 4.00.950]、Windows NT 3.x、Windows NT 4.0 和 Windows 3.x)。 CIH 破坏后的硬盘修复
摘要: 本文记述了CIH病毒发作后破坏后的状况及CIH的破坏原理,讨论了修复的可能性,针对全盘修复作了讨论,对磁盘原理进行了分析,并对分区表及第一个分区的修复方法作了较
为深刻的探讨。最后介绍了一下用此原理编制的程序FixDriveC。
关键字:CIH 病毒 修复 磁盘结构 一、CIH的破坏
4月26日,隐藏在数十万台计算机中的CIH病毒突然发作,造成全国大面积的计算机瘫痪,损失十分惨重。病毒发作的机器BIOS(基本输入输出系
统)被改写,硬盘数据被损坏,造成机器无法启动,重要数据丢失。据有关调查表明,在上月26日CIH病毒的大规模发作中,我国受到损害的计算机总量为36万台,造成的直接、间接经济损失超过10亿元。调查还表明,这次CIH病毒发作中全国受到侵害的计算机中主板受损的比例为15%,造成的直接经济损失为0.8亿元,间接经济损失超过10亿元。 二、CIH病毒简介
CIH病毒是台湾大学生陈英豪编制的,起初据称只是为了“使反病毒软件公司难堪”,但后来由于病毒传染力强,迅速扩散到了世界各个国家的计算机系统上。以至于造成现在的严重情况。CIH病毒属文件型病毒,其别名有Win95.CIH、Spacefiller、Win32.CIH、PE_CIH,它主要感染Windows95/98下的可执行文件,目前的版本不感染DOS以及WIN3.X下的可执行文件,并且在WinNT中不能发作。其发展过程至现在公认经历了v1.0,v1.1、v1.2、v1.3、v1.4五个版本,目前最流行的是v1.2版本。其中1.0版时间较早,没有破坏作用;1.1版被感染文件大小不变,没破坏力;1.2版加入破坏硬盘和BIOS的程序,在每年的4月26日发作;1.3版修正了部分感染自解压文件时的出错问题,而且将发作日期改为每年6月26日;1.4版对于所有的Winzip自解压文件都不感染,并会在每个月的26日发作。 三、CIH发作分析
CIH发作时将会把部分5V电压的Flash ROM重写,填入杂乱的数据,使机
器无法启动,同时从第一个硬盘的第一个扇区开始以2048个字节为单位将内存中不相关的数据填入硬盘。IOS_SendCommand是Win95的一个非常底层的VXD调用,通常是用作对IO设备的低层操作,如:读,写,加锁,格式化等等。一般情况下只能在Ring 0和虚拟机中使用。CIH病毒先构造一个IOR,再使用IOS_SendCommand调用,完成IOR所指定的功能。 病毒指定第一次写的磁盘为第一个磁盘,位置为0,即0柱面0磁头1扇区,指定一次写的长度为2048个字节,然后调用IOS_SendCommand进行一次写操作。如果成功,将继续重复写操作,直到将所有的扇区全部写完,然后转到第二个硬盘继续写。病毒理想的情况是将所有硬盘全部写完。但由于写盘的速度比较慢,加之Flash ROM在硬盘破坏之前被破坏,因此很可能导致死机或被用户Reset复位,所以病毒不会将所有的数据破坏掉,通常只能破坏硬盘前部的几百个至上千个扇区。而现在的硬盘都比较大,病毒并没有破坏到数据区,这就给恢复提供了先决条件。 四、磁盘结构综述 1.硬盘结构
硬盘的内部是由圆形金属片堆叠起来的,每个盘片的两面都有一个磁头(Head)负责读写这个磁面(Side),在每个磁面上划分了一圈一圈的同心圆,叫做柱面(Cylinder)对于软盘通常称之为磁道,在每个柱面中又划分了若干段,称之为扇区(Sector)。
由于技术的发展,硬盘的密度越来越大,使得硬盘的实际盘片数越来越少,
对磁盘操作的柱面、磁头、扇区被硬盘控制器内部转换,已经不是实际的柱面、磁头、扇区了。由于最早时磁盘存取系统估计不足,传输数据时只给扇区留了6位,柱面留了10位,磁头留了8位。也就是说,柱面最大只能为1023。但是大硬盘的柱面远大于这个数,所以后来就采用将柱面数减少,将磁头数增加的方式来满足磁盘寻址的要求,对于实际地址的转换在BIOS中进行,这叫逻辑块寻址方式(Logical Block Addressing,LBA)硬盘中有关柱面、磁头、扇区的数据都是以此为基准的。 2.分区结构
众多的文件数据存放在磁盘上,需要有组织,这就形成了文件系统。但是各个操作系统的文件系统都不尽相同,为了划分管理文件系统,在现在的PC机上都采用通用的分区结构。
分区机构是这样的:硬盘的以一个扇区(就是0柱面0磁头1扇区)叫主引导扇区(Main Boot Record,MBR),存放着引导程序和主分区表(Main Partition Table)和结束标志“55AA”。一般称的分区表即是主分区表。一个分区表最多可包含四个分区表项,每个分区表项中标示着一个分区信息或一个扩展分区表的位置,而扩展分区表中可能还有扩展分区表,这就形成了一个链状结构,可以记录很多个分区。 主引导扇区结构如图所示。 C语言定义如下