计算机病毒的组织结构,计算机病毒的相关DOS基本系统知识---硬盘结构及数据组织...

《计算机病毒的相关DOS基本系统知识---硬盘结构及数据组织》由会员分享,可在线阅读,更多相关《计算机病毒的相关DOS基本系统知识---硬盘结构及数据组织(9页珍藏版)》请在人人文库网上搜索。

1、计算机病毒的相关DOS基本系统知识-硬盘结构及数据组织(1)硬盘的结构硬盘和软盘一样,都是个人计算机常用的外存储器,但硬盘比软盘容量大,速度快。硬盘由多个盘片组成,PC的硬盘一般由214个盘片组成。以两个盘片为例,它有4个磁头,编号为03,4个磁头对应的4个面为03面。硬盘的磁盘表面也以转轴中心为圆心,被均匀地划分为若干个半径不等的同心圆,叫做磁道。不同面上的相同直径的磁道,在垂直方向构成的圆筒,叫做柱面。显而易见,柱面数等于磁道数。10MB的硬盘共有306个柱面,编号由外向里为0柱面到305柱面;20MB的硬盘有614个柱面,编号为0613。1个面上每个磁道有17个扇区,每个扇区(无论弧长的。

2、大小)都存储512个字节,所以,对于10MB硬盘,全部字节数为:751217有17个系统隐藏扇区,DOS分区从1面0柱l扇区开始。由此可见,硬盘的逻辑扇区与物理扇区的对应关系因DOS版本的不同而不同。(2)硬盘的数据组织硬盘系统可以划分为几个分区,用以支持DOS以外的操作系统。DOS3.2版本以下的系统,硬盘最多可分为4个分区。每个分区可以具有不同大小的存储空间,但每个分区分配的存储空间是连续的,因此在(3)主引导扇区主引导扇区位于硬盘0面0柱1扇区,它是硬盘上的第一物理扇区。它由主引导程序(位移量0001BDH)和分区表(PartitionTable,位移量1BE1FDH)两部分组成,最后两。

3、个字节(位移量1FE1FFH)“55AA”为主引导区结束标志。主引导程序用于硬盘启动时将系统控制转给用户指定的并在分区中登记了的某个操作系统区;分区表用于指明硬盘划分情况,含4个可能的分区,每个分区的记录占用16个字节,由FDISK程序建立。主引导扇区中存放着硬盘的主引导记录。硬磁盘的主引导记录包括3个方面的内容:主引导程序代码主引导程序用来找出系统当前的活动分区,负责把对应的一个操作系统的引导记录(当前活动分区的引导记录)装入内存,然后把控制权转给该分区的引导记录。分区表主引导扇区的分区表存放在主引导记录的后第0个字节是自检标志,该值为80H时,表示该分区是当前活动分区,可引导;当值为00H。

4、,表示该分区不可引导。第4字节是DOS系统标志,其值为00H时表示不是DOS分区;值为01H时,表示该分区是DOS分区,使用12位文件分配表;值为04H或其他值(但不能是00H,若将此字节置为00H,可达到加密硬盘的效果)时表示是DOS分区,并采用16位或32位文件分配表。分区表的第13字节是该分区的起始地址,其中第1字节为起始磁头号(面号),第2字节的低6位为扇区号,第2字节的高2位是柱面号的高2位,第3字节指出柱面号的低8位,因此,柱面号是用10位二进制数表示的。分区表的第57字节表示该分区的终止地址,其意义与第13字节相同。第811字节表示该分区的起始逻辑扇区号,第1215字节表示该分区。

5、的实际扇区数。仅有一个DOS分区(0面0柱2扇区3面98柱14主引导记录结束标志当主引导记录结束标志为AA55H时,表示该主引导记录是一个有效的记录,它可用来引导硬盘系统。硬盘的主引导记录扇区,即0面0柱l扇区,是一个系统的隐含扇区。它排在逻辑0扇区之外,因此不能使用系统中断INT25H和INT26H对它进行读写操作,也不能使用工具软件DEBUG、PCTOOLS读写它,只有使用中断INT13H才能访问该隐含扇区。某些病毒程序(如Stone病毒),就是利用硬盘主引导扇区的隐含性来保护自己的。由于主引导扇区中包含有DOS分区表(从1BEH到1FFH),而该分区表是不能不存在的,所以,隐藏在主引导扇。

6、区中的病毒程序最长也不能超过1BEH,即不超过446B。如前所述,不同的DOS版本下,硬盘的隐含扇区数目是不同的:DOS3.0以下版本只有1个隐含扇区,而DOS3.0及以上版本有17个隐含扇区,DOS通制造厂家标记和DOS版本号(8字节);磁盘基本I/O参数块(BPB,19字节)和磁盘基数表(11字节);引导程序(482字节)。同样,硬盘的BPB表,记录了有关磁盘的重要信息,如每扇区字节数、每簇扇区数、文件表个数、磁盘介质说明等等。而磁盘基数表则将每道扇区数、每扇区字节数、扇区间隔字节数、磁头加载卸载时间等信息提供给磁盘驱动程序。有关参数表的含义和磁盘介质说明符请分别参看表2.1、表2.2。其。

7、中的隐含扇区数一般用于硬盘分区(所以在软盘中该值为0),在硬盘分区中,它表示磁盘起始扇区到当前分区之前的总扇区数,如表2.6所示:硬盘的每一个分区都是独立的“逻辑驱动器”,DOS将每个分区都视为一个从0开始的连续扇区块,每个分区的隐含扇区数取决于该分区以前的总扇区数。一般说来,硬盘的第1分区的隐含数取决于硬盘0面0柱的扇区数,即将0面0柱一个磁道的扇区作为隐含扇区。(5)文件分配表文件分配表(FAT)存放着磁盘上以簇为单位的存储空间的使用情况,是DOS文件管理系统用来记录每个文件的存储位置的表格,它以链接的方式存放簇号。由于它的重要性,一般硬盘上均有两个完全相同的文件分配表:一个是基本表,另一。

8、个为基本表备份,两个表的长度一样,内容一样。每个FAT所占用的扇区数取决于DOS版本、分区大小、FAT表项的长度等因素,其具体所占扇区数即BPB偏移16H处的值。磁盘格式化后,用户文件是以簇为单位存放在数据区中的,一个文件至少占用一个簇。当一个文件占用多个簇时, 该簇就不能使用。簇号的长度由簇的多少决定,进而决定了FAT中表项的位数,现在FAT的位数有12位、16位和32位3种。FAT表项值是占12位、16位还是32位,与操作系统版本及所用磁盘的容量有关,12位表项值可表示4096个簇,如磁盘的簇数大于4096,则必须用16 位或32位表项值(一般说来,小于10MB的硬盘或软盘的DOS分区用1。

9、2位映射一个簇), 16位的FAT表项最多可表示65536个簇。一般每簇不多于64个扇区(32kB),这样,采用16位FAT的系统最多能管理3265536kB=2097152kB=2048MB=2GB的磁盘。对于容量超过2GB的大容量硬盘若采用16位FAT,必须将其划分成不超过2GB的逻辑盘。我们知道,在硬盘的主引导扇区的分区表中,只有4个分区表项,所以,16位FAT硬盘的极限容量是8GB。而在FAT32模式下,32位表项值最多可以表示4294967296(2 32 )个簇,尽管每个簇只有4kB大小,但却可以管理44294967296=17179869184kB=16777216MB=1638。

10、4GB=16TB(太字节)的分区。DOS是以簇为单位给文件分配磁盘空间的,每个簇在FAT表中占有一个登记项,所以,在FAT表中,簇编号也是登记项的编号。每个登记项作为一个簇的标记信息占用1.5、2或4个字节(分别对应于FAT12、FAT16、FAT32),该标志信息可取的表项值及其含义见表2.7。XXXH为任意十六进制数值,表示占用该簇的文件内容链接的下一个簇的簇号。文件占用的第一个簇号(文件首簇)存放在该磁盘的文件目录表中该文件的目录登记项中的第26、27字节,由首簇开始,形成一个文件占有磁盘的簇链。对于以2字节为单位的FAT,每一项的内容是按低字节在前,高字节在后的规律存放的,如图2.2(。

11、A);以1.5字节为单位的FAT,则按图2.2(B)所示的交叉规律存放。磁盘上有多少簇,文件分配表上就应该有对应的多少项,每个表项表示一个簇的使用情况。这个表的结构很简单磁盘坏簇一般是在磁盘格式化时发现缺陷而被检测出来,并将其封锁住不再分配的坏簇区。许多病毒程序就是利用在文件分配表中将病毒本身占有的对应簇号置成FF7H(对应于12位FAT)来隐蔽自己,使DOS系统不再分配这些被病毒占有的磁盘空间。在磁盘进行读、写时,需要将某文件所占用的簇号转换成逻辑扇区号。其转换公式为:逻辑扇区号=(簇号-2)每簇扇区号+系统占用扇区数其中,系统占用扇区数为DOS系统的引导扇区、文件分配表占用扇区数及根目录表。

12、占用扇区数之和。 DOS引导扇区占一个扇区,FAT占用扇区数可直接由BPB表中查到。根目录表占的扇区数可用BPB表中根目录表项数求得。公式如下:根目录表占用扇区数=(根目录表项数每项字节数)/512 =(根目录表项数32)/512 =根目录表项数/16 对于1.44MB软盘:根目录表占用扇区数=240/16=15,FAT占用扇区数=29=在清除某些引导区型病毒时,常遇到要把病毒已标记为坏簇的磁盘空间改为未分配簇的情况。这时,一般已知坏簇中第一扇区的逻辑扇区号,需要将它换算成相应的簇号,可用下列逆换算公式:簇号=2+(逻辑扇区号-系统占用扇区数)/每簇扇区数虽然FAT记录了文件所用的磁盘空间信息,但是,DOS引导区、两个FAT、文件目录区FDT等磁盘空间并不由FAT中的簇表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值