欢迎来到天天文库
浏览记录
ID:26248595
大小:55.50 KB
页数:5页
时间:2018-11-25
《用扩展int13h研析并恢复大容量硬盘分区信息链表 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用扩展INT13H研析并恢复大容量硬盘分区信息链表内容摘要:本文利用扩展INT13H的磁盘地址数据包及相关调用,分析了整个分区链表并给出了链表中任一结点分区信息丢失或被破坏之后的一种恢复方法。关键字:扩展INT13H、数据包、分区信息、链表、恢复一、扩展INT13H相关读写接口规范概述扩展INT13H接口设计的目的是为了扩展BIOS的功能,使之能处理柱面数大于1024的硬盘,并支持移动存贮介质的锁定、解锁和弹出等各类新增功能。1、数据类型定义:BYTE一字节;OVAH,42MOVDL,80INT13INT3-G=100-D3BE80
2、011216:03B001000BFEBFD93F00-00001BF2B2000000:03C081DA0FFEFFFF5AF2-B2003EDEE0020000从上述内容可知:C区的起始点为0柱1头1扇,即磁盘起始绝对扇区0号;C区的结束点为729柱254头63扇,并隐含了63个扇区;C区共占用了00B2F21BH个扇区约为5.58GB。整个扩展分区的起点为730柱0头1扇,其结束点由于柱面号已大大的大于1024,而10位二进制数已不能表达,所以其结束点一律记为254头1023柱63扇,即FEFFFF.整个扩展分区本身占用02E
3、0DE3EH扇区,5AF2B200为扩展分区前所用扇区数,即C区所用和隐含部分00B2F21BH+0000003FH=00B2F25AH读取逻辑D盘分区信息表:从前面可知D盘之前已用00B2F25AH,由于起始绝对扇区号为零,因此D盘的入口地址为:00B2F25AH,所以磁盘读写地址数据包修改如下:DS:00001000010000021612-5AF2B20000000000-G=100-D3BEds:3B00001:3C081DA0BFEFFFF3F00-00001BF2B2000000:3D0C1FF05FEFFFF5AF2-
4、B20054DAD000逻辑D盘的起点为730柱1头1扇,0头所含63扇隐含;逻辑D盘的结束点由于柱面数超过1024,一律记为FEFFFF此后的逻辑盘结束点也一样。逻辑D盘自用00B2F21BH扇后一分区表项记录的是逻辑E盘的相关数据:逻辑E盘的起点由于柱面数超过1024,一律记为00C1FF,结束点为FEFFFF.逻辑E盘之前已用的扩展分区扇数00B2F21BH+0000003FH=00B2F25AH即D盘所用和D盘前隐含的部份5AF2B200逻辑E盘所占扇区数(包含自身及隐含的0头上的63扇)对于后继的各分区结点信息分析,可参照
5、执行完全类似。唯一需要注意的是,后继结点分区信息表的入口地址,是其前继结点的入口地址加上前继结点的长度(包括隐含的3FH)。三、分区信息链表中任一结点分区信息的恢复实际上对大容量硬盘分区信息的恢复有以下几条规则:1、任何一分区所占用的扇区数,在其所对应的逻辑零扇区的偏移地址20H都有备份;2、活动分区的起始点为0柱1头1扇区即010100,结束点可由上述备份反推求出柱面号,磁头号为FEH,扇区号为3FH,然后将柱面号和扇区号合并成两个字节,若备份容量大于传统容量限制则为FEFFFF;3、每一结点分区信息中前一分区表项中的隐含扇区数为
6、003FH,后一分区表项中的隐含扇区数分为两种情况:在扩展分区中该部分内容为活动分区大小加上隐含的63个扇区;在逻辑分区中该部分内容为前一结点信息中后一表项的两个数据项之和;4、每一结点逻辑分区信息后一分区表项的最后四个字节内容为下一结点前一分区表项的隐含扇区数与该分区所占扇区数之和;5、倒数第二个结点分区信息中的后一表项的两个数据项之和等于扩展分区所占用的总扇区数;6、主分区信息表中分区类型标志分别为0BH和0FH,在后续逻辑分区信息表中分别为0BH和05H;(本文针对FAT32位分区方式,其它分区方式可相应改动)7、任一结点逻辑
7、分区信息所对应的逻辑零扇区的入口地址等于该逻辑分区入口地址加上该分区所隐含的扇区数,即3FH。掌握以上几条原则,即便整个分区信息链表全部破坏或丢失,都能从相关的逻辑零扇完全修复。主分区信息的恢复过程操作概要:第一步:活动标志和起始点是固定的80010100分区类型0BH,隐含扇区数是固定的3F000000,自用扇区总数从逻辑零扇区偏移20H处提取四个字节1BF2B200。利用公式扇区总数=(柱面号*磁头数+磁头号)*每磁道扇区数扇区总数=00B2F21BH、磁头数=FFH、磁头号=FEH、每磁道扇区数=3FH,可推算柱面号,就可得到
8、活动分区的结束点内容。第二步:扩展分区的活动标志为00,起始点为下一个柱面号的0头1扇即0081DA,分区类型为0FH,隐含部分=前一表项所占用扇区数与其前的隐含扇区之和,结束点由于已超过8.4G一律填为FEFFFF,扩展分区所占用的
此文档下载收益归作者所有