<form id="itnzz"><noscript id="itnzz"></noscript></form>

          1. <menuitem id="itnzz"></menuitem>
          2. 成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
            現在位置:范文先生網>理工論文>計算機信息技術>用擴展INT13H研析并恢復大容量硬盤分區信息鏈表

            用擴展INT13H研析并恢復大容量硬盤分區信息鏈表

            時間:2023-02-21 00:09:56 計算機信息技術 我要投稿
            • 相關推薦

            用擴展INT13H研析并恢復大容量硬盤分區信息鏈表

            用擴展INT13H研析并恢復大容量硬盤分區信息鏈表

            江西宜春學院計算機系  劉  健

            內容摘要:本文利用擴展INT13H的磁盤地址數據包及相關調用,分析了整個分區鏈表并給出了鏈表中任一結點分區信息丟失或被破壞之后的一種恢復方法。

             

            關鍵字:擴展INT13H、數據包、分區信息、鏈表、恢復

             

            一、 擴展INT13H相關讀寫接口規范概述

            擴展INT13H接口設計的目的是為了擴展BIOS的功能,使之能處理柱面數大于1024的硬盤,并支持移動存貯介質的鎖定、解鎖和彈出等各類新增功能。

            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)*SectorPerTrack+Sector-1

            DRWAP數據包的獲取及實際操作

            2、 定義磁盤讀寫地址數據包獲取指定扇區之內容

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

              出口參數:CF=NC OK;CF=CY ERROR

             

            二、分區信息鏈表解析

            讀取主引導扇區操作過程:(為操作的連續性,本文不采用傳統INT13H的功能號02)磁盤讀寫地址數據包按如下方式定義:

            進入DEBUG狀態之后,DS和SI采用當前默認值,假設為DS=1216,SI=0000    則E命令或F命令從1216:0000處輸入以下16個字節內容

            1216:0000 10  00  01  00  00  02  16  12-00  00  00  00  00  00  00

              00

             數據包長度=10H=16個字節      保留字節=00H     要傳輸的扇區個數=0001H=1個

             緩沖區地址DS:SI=1216:0200     磁盤起始絕對扇區號=0000000000000000H=0號

            -A100

            1216:0100 MOV AH,42

                     MOV DL,80

                     INT  13

                     INT  3

            -G=100

            -D3BE

                                                                                  80  01

             1216:03B0  01  00  0B  FE  BF  D9

              3F  00-00  00  1B  F2  B2  00  00  00

            :03C0  81  DA  0F  FE  FF  FF  5A  F2-B2  00  3E  DE  E0  02  00  00

            從上述內容可知:

            C區的起始點為0柱1頭1扇,即磁盤起始絕對扇區0號;

            C區的結束點為729柱254頭63扇,并隱含了63個扇區;

            C區共占用了00B2F21BH個扇區約為5.58GB。

            整個擴展分區的起點為730柱0頭1扇,其結束點由于柱面號已大大的大于1024,而10位二進制數已不能表達,所以其結束點一律記為254頭1023柱63扇,即 FE FF FF.

            整個擴展分區本身占用02E0DE3EH扇區,5A F2 B2 00 為擴展分區前所用扇區數,即C區所用和隱含部分00B2F21BH+0000003FH=00B2F25AH

             

            讀取邏輯D盤分區信息表:

            從前面可知D盤之前已用00B2F25AH,由于起始絕對扇區號為零,因此D盤的入口地址為:00B2F25AH,所以磁盤讀寫地址數據包修改如下:

            DS:0000  10 00 01 00 00 02 16 12 -5A F2 B2 00 00 00 00 00

            -G=100

            -D3BE

            ds:3B0                                        00 01

              :3C0  81 DA 0B FE FF FF 3F 00-00 00 1B F2 B2 00 00 00

              :3D0  C1 FF 05 FE FF FF 5A F2-B2 00 54 DA D0 00

            邏輯D盤的起點為730柱1頭1扇,0頭所含63扇隱含;

            邏輯D盤的結束點由于柱面數超過1024,一律記為FE FF FF此后的邏輯盤結束點也一樣。

            邏輯D盤自用00B2F21BH扇

            后一分區表項記錄的是邏輯E盤的相關數據:

            邏輯E盤的起點由于柱面數超過1024,一律記為00 C1 FF,結束點為FE FF FF.

            邏輯E盤之前已用的擴展分區扇數00B2F21BH+0000003FH=00B2F25AH即D盤所用和D盤前隱含的部份 5A F2 B2 00

            邏輯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。

            掌握以上幾條原則,即便整個分區信息鏈表全部破壞或丟失,都能從相關的邏輯零扇完全修復。

            主分區信息的恢復過程操作概要:

              第一步:活動標志和起始點是固定的 80 01 01 00 分區類型0BH,隱含扇區數是固定的3F 00 00 00,自用扇區總數從邏輯零扇區偏移20H處提取四個字節1B F2 B2 00。

            利用公式   扇區總數=(柱面號*磁頭數+磁頭號)*每磁道扇區數

            扇區總數=00B2F21BH、磁頭數=FFH、磁頭號=FEH、每磁道扇區數=3FH,可推算柱面號,就可得到活動分區的結束點內容。

              第二步:擴展分區的活動標志為00,起始點為下一個柱面號的0頭1扇即00 81 DA,分區類型為0FH,隱含部分=前一表項所占用扇區數與其前的隱含扇區之和,結束點由于已超過8.4G一律填為FE FF FF,擴展分區所占用的總的扇區數,可通過上述原則中的第5條計算出來。

             

             

                                    地址:江西省宜春市宜春學院工學院計算機科學系

                

            ;                    郵編:336000       電話:0795-3561890

                                    emile:liubangling@sohu.com


            【用擴展INT13H研析并恢復大容量硬盤分區信息鏈表】相關文章:

            C8051F的超大容量Flash存儲器擴展08-06

            研析經濟憲法學08-18

            256×32大容量中文矩陣系統的設計08-06

            擴展語句08-16

            用“語句擴展訓練”培養學生寫作能力08-15

            基于IDE硬盤的大容量語音記錄儀08-06

            擴展培訓心得10-01

            語文 -擴展語句08-16

            教學方式的擴展08-17

            主站蜘蛛池模板: 国产69堂免费视频| 亚洲国产成人精品女人久久久| 欧美成A高清在线观看| a级黑人大硬长爽猛出猛进| 国产成人AV无码精品天堂| 色综合久久综合中文综合网| 综合久久婷婷综合久久| 久久精品国产亚洲av麻豆小说| 精品人妻系列无码人妻漫画| 国产成人久视频免费| 国产亚洲精品中文字幕| 国产午夜精品福利免费看| 九九热精品在线视频免费| www.91在线播放| 亚洲午夜av一区二区| 秋霞电影网| 九九热久久只有精品2| 日日噜噜夜夜狠狠视频| 亚洲欧美在线一区中文字幕| 久久精品岛国AV一区二区无码| 亚洲日韩中文无码久久| 国产目拍亚洲精品二区| 精品国产电影网久久久久婷婷| 精品一区二区不卡免费| 青青草a国产免费观看| 激情亚洲内射一区二区三区| 国产成人AV男人的天堂| 蜜桃成熟色综合久久av| 国产成人一区二区三区视频免费| 蜜芽久久人人超碰爱香蕉| 久久精品国产字幕高潮| 国产成人精品18| 老司机久久99久久精品播放免费| 精品国产中文字幕av| 国产乱码一区二区三区免费| 亚洲av成人一区二区三区色| a4yy私人毛片| 亚洲精品第一页中文字幕| 国产伦码精品一区二区| 亚洲欧美激情在线一区| 亚洲人成网站18禁止大app|