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

点击数:271 | 发布时间:2025-02-27 | 来源:www.pgmkgs.com

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

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

    1、扩展INT13H有关读写接口规范概述
    扩展INT13H接口设计的目的是为了扩展BIOS的功能,使之能处置柱面数大于1024的硬盘,并支持移动存贮介质的锁定、解锁和弹出等各类新增功能。
    1、数据种类概念:
    BYTE一字节;WORD二字节;DWORD四字节;QWORD八字节;
    磁盘读写地址数据包DRWAP(DiskReadWriteAddressPacket),借助该数据包中断INT13H可以直接读写处置现在主流硬盘上的任一扇区,匆需理会传统磁盘定义中的通过柱面号、磁头号及扇区号(CHS)的物理扇区定位方法。
    DRWAP结构如下:
    StructDRWAP
    {BYTEPacketSize;//数据包所占字节数,有10H和18H两种,本文用前者
    BYTEReserved;//保留字节,设为00H
    WORDBlockcount;//传输的数据块个数(最大值为7FH),以扇区为单位
    DORDTransferBuffer;//传输缓冲区地址(SEG:OFFSET)
    QORDAbsoluteBlockNumber;//磁盘起始绝对扇区号(主引导扇区为0号)
    }
    AbsoluteBlockNumber与传统CHS的关系如下:
    AbsoluteBlockNumber=(Cylinder*NumHeads+Head)*SectorPerTrack+Sector-1
    DRWAP数据包的获得及实质操作
    2、概念磁盘读写地址数据包获得指定扇区之内容
    入口参数:AH=42H;DL=80H;DS:SI=DRWAP首地址
    出口参数:CF=NCOK;CF=CYERROR

    2、分区信息链表分析
    读取主引导扇区操作过程:(为操作的连续性,本文不使用传统INT13H的功能号02)磁盘读写地址数据包按如下方法概念:
    进入DEBUG状况之后,DS和SI使用目前默认值,假设为DS=1216,SI=0000则E命令或F命令从1216:0000处输入以下16个字节内容
    1216:00001000010000021612-0000000000000000
    数据包长度=10H=16个字节保留字节=00H要传输的扇区个数=0001H=1个
    缓冲区地址DS:SI=1216:0200磁盘起始绝对扇区号=0000000000000000H=0号
    -A100
    1216:0100MOVAH,42
    MOVDL,80
    INT13
    INT3
    -G=100
    -D3BE
    8001
    1216: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.
    整个扩展分区本身占用02E0DE3EH扇区,5AF2B200为扩展分区前所用扇区数,即C区所用和隐含部分00B2F21BH+0000003FH=00B2F25AH

    [1][2]下一页

  • THE END

    声明:本站部分内容均来自互联网,如不慎侵害的您的权益,请告知,我们将尽快删除。

专业院校

返回顶部

Copyright©2018-2024 国家人事考试网(https://www.scxhcf.com/)
All Rights Reserverd ICP备18037099号-1

  • 国家人事考试网微博

  • 国家人事考试网

首页

财经

建筑

医疗