用扩展INT13H研析并恢复大容量硬盘分区信息链表

时间:2024-09-22 19:28:33 来源:作文网 作者:管理员

用扩展INT13H研析并恢复大容量硬盘分区信息链表 用扩展INT13H研析并恢复大容量硬盘分区信息链表 信息技术论文 更新:2006-4-8 阅读: 用扩展INT13H研析并恢复大容量硬盘分区信息链表

用扩展INT13H研析并恢复大容量硬盘分区信息链表

江西宜春学院计算机系 刘 健

内容摘要:本文利用扩展INT13H的磁盘地址数据包及相关调用,分析了整个分区链表并给出了链表中任一结点分区信息丢失或被破坏之后的一种恢复方法。

关键字:扩展INT13H、数据包、分区信息、链表、恢复

一、 扩展INT13H相关读写接口规范概述

1、 数据类型定义:

BYTE 一字节; WORD 二字节; DWORD 四字节; QWORD 八字节;

磁盘读写地址数据包DRWAP(Disk Read Write Address Packet),利用该数据包中断INT13H可以直接读写处理目前主流硬盘上的任一扇区,匆需理会传统磁盘概念中的通过柱面号、磁头号及扇区号(CHS)的物理扇区定位方式。

DRWAP结构如下:

Struct DRWAP

{ BYTE PacketSize;//数据包所占字节数,有10H和18H两种,本文用前者

BYTE Reserved;//保留字节,设为00H

WORD Blockcount;//传输的数据块个数(最大值为7FH),以扇区为单位

DORD TransferBuffer;//传输缓冲区地址(SEG:OFFSET)

QORD AbsoluteBlockNumber;//磁盘起始绝对扇区号(主引导扇区为0号)

}

AbsoluteBlockNumber与传统CHS的关系如下:

AbsoluteBlockNumber=(Cylinder*NumHeads+Head)*SectorPerTr☑ack+Se℉ctor-บ1

DRWAP数据包的获取及实际操作

2、 定义磁盘读写地址数据包获取指定扇区之内容

入口参数:AH=42H; DL=80H; DS:SI=DRWAP首地址

出口参数:CF=NC OK;CF=CY ERROR

二、分区信息链表解析

数据包长度=10H=16个字节 保留字节=00H 要传输的扇区个数=0001H=1个

-A100

1216:0100 MOV AH,42

MOV DL,80

INT 13

INT 3

-G=100

-D3BE

80 01

从上述内容可知:

C区的起始点为0柱1头1扇,即磁盘起始绝对扇区0号;

C区的结束点为729柱254头63扇,并隐含了63个扇区;

C区共占用了00B2F21BH个扇区约为5.58GB。

读取逻辑D盘分区信息表:

从前面可知D盘之前已用00B2F25AH,由于起始绝对扇区号为零,因此D盘的入口地址为:00B2F25AH,所以磁盘读写地址数据包修改如下:

-G=100

-D3BE

ds:3B0 00 01

逻辑D盘的起点为730柱1头1扇,0头所含63扇隐含;

逻辑D盘自用00B2F21BH扇

后一分区表项记录的是逻辑E盘的相关数据:

逻辑E盘所占扇区数(包含自身及隐含的0头上的63扇)

对于后继的各分区结点信息分析,可参照执行完全类似。唯一需要注意的是,后继结点分区信息表的入口地址,是其前继结点的入口地址加上前继结点的长度(包括隐含的3FH)。

三、 分区信息链表中任一结点分区信息的恢复

实际上对大容❦量硬盘分区信息的恢复有以下几条规则:

1、 任何一分区所占用的扇区数,在其所对应的逻辑零扇区的偏移地址20H都有备份;

2、 活动分区的起始点为0柱1头1扇区即ฉ01 01 00,结束点可由上述备份反推求出柱面号,磁头号为FEH,扇区号为3FH,然后将柱面号和扇区号合并成两个字节,若备份容量大于传统容量限制则为FE FF FF;

3、 每一结点分区信息中前一分区表项中的隐含扇区数为003FH,后一分区表项中的隐含扇区数分为两种情况:在扩展分区中该部分内容为活动分区大小加上隐含的63个扇区;在逻辑分区中该部分内容为前一结点信息中后一表项的两个数据项之和;

4、 每一结点逻辑分区信息后一分区表项的最后四个字节内容为下一结点前一分区表项的隐含扇区数与该分区所占扇区数之和;

5、 倒数第二个结点分区信息中的后一表项的两个数据项之和等于扩展分区所占用的总扇区数;

6、 主分区信息表中分区类型标志分别为0BH和 0FH,在后续逻辑分区信息表中分别为0BH和05H;(本文针对FAT32位分区方式,其它分区方式可相应改动)

7、 任一结点逻辑分区信息所对应的逻辑零扇区的入口地址等于该逻辑分区入口地址加上该分区所隐含的扇区数,即3FH。

掌握以上几条原则,即便整个分区信息链表全部破坏或丢失,都能从相关的逻辑零扇完全修复。

主分区信息的恢复过程操作概要:


热门排行: 教你如何写建议书