winhex與磁盤格式與 數據恢復


 

第一階段:

 

 熟悉WinHex的使用。

 

n 熟悉磁盤工具的使用。

 

n 利用WinHex查看物理磁盤和邏輯磁盤。

 

n 了解WinHex中相關工具的用法。

 

以管理員身份運行winhex(以便之后修改)

上方工具欄,工具,打開磁盤,可以按邏輯盤和物理盤來打開磁盤。

位置可以按扇區,偏移,FAT表跳轉。

右鍵單擊分區,點擊template可以查看一些信息。

第二階段:

 分析本地硬盤的主引導扇區

 利用

n 主引導扇區由哪些部分組成?

n 四個主分區項的內容各代表什么?

n 分析主擴展分區表的結構。

n 通過分區項來確定每個本地邏輯盤的位置以及大小,並畫出本地硬盤的邏輯結構。

n 每個本地盤的開始扇區位置,總扇區數,結束扇區位置,各擴展分區表扇區位置,保留空間數量。

 

下圖為實驗室虛擬機的磁盤。

 

 

 

下圖為主引導扇區,主分區表

 

 

1BE列開始為分區信息。

第一個分區:80 01 01 00 07 FE FF FF 3F 00 00 00 00 00 80 02

80代表為主分區,07表示為NTFS格式。00 00 00 3f H為起始扇區。(因為有一個扇區為主引導扇區,且有62個扇區保留,固從3fH63號扇區開始)。02800000H是扇區數,一扇區512字節,計算后為20.0GB

類似的,0b表示為FAT32格式,0f表示擴展分區。

0000003fH + 02800000H即為0280003fH,是下個分區的起始扇區號,與圖中顯示一致。

第二個分區:00 FE FF FF 07 FE FF FF 3F 00 80 02 00 00 40 01

起始扇區 0280003FH,與上面的計算一致。 大小01400000H,為第一個分區的一半,10G

第三個分區類似,大小為C00000H個扇區,6G,起始扇區03C0003FH

值得注意的是第4個分區,大小為02FFEFC0H,計算為50327488個扇區,23.998016357421875GB,不是恰好24GB。起始位置0480003FH

 

打開第四個分區,可見分區表。

G盤,H盤的信息。

G盤大小01400000H個扇區,10GB,起始位置0000003FH。這里的起始位置是相對於主分區表中0480003FH的偏移。

H盤大小01BFEF81H29335905個扇區,13.99844GB,起始位置0140003FH

 

第三階段:

 熟悉FAT32文件格式。

n 用WinHex打開某個FAT32分區格式的邏輯盤。

n 查看該邏輯盤的起始扇區,分析起始扇區中的相關字段(BPB:BIOS Parameter Block)。

n 查看FAT1和FAT2的內容和大小。

n 查看該邏輯盤的根目錄區。

n 查看某個文件的目錄項結構和FAT鏈以及具體存儲位置。

n 在根目錄下建立文本文件test.txt,其中填充60K左右的文本字符保存。

n 查看該文件的目錄項,對其進行分析,並得到該文件所在位置以及大小。

n 查看首簇位置,並得到簇鏈表。通過簇鏈表查看該文件內容。

n 記錄首簇位置(14H-15H,1AH-1BH)和文件大小(1CH-1FH)。

 

這里F盤就是FAT32格式的盤。00行,BC列0200H代表一個扇區512字節,D行20H代表一簇32扇區。於是一簇16kb。

F盤6GB,計算6*1024*1024/16得簇數,一簇在FAT表中占4字節,故計算得FAT表大小應為1.5M,事實上查看下圖,確實為1.5M,計算正確。

以上信息也可以在Disk中右鍵template查看。

 

 

F盤建立txt文件,test.txt,大小為57kb

 

 

右鍵test.txtgo to directory entry可以查看目錄項。

 

 

八位00H-07H文件正名,08H-0AH三位擴展名,14H-15H為起始簇號高16位。1AH-1BH為起始簇號低十六位。1CH-1FH為文件字節長度。這里0000E219H,為57881字節。起始簇號000003C9H,為969號。

 

然后點擊FAT32,右鍵go to FAT entry,輸入969,可以轉到test.txt的簇鏈表。如下圖。

注意簇號從零開始,四字節一個簇號。然后每個位置的內容指向下一簇。最后一簇內容為0FFFFFFFH。

 

 

第四階段:

 手工恢復被刪除的文件

n 刪除前面所建立的文件test.txt。(del&shift+del)

n 利用WinHex在該文件所在盤符查找test.txt文件的目錄項。

n 查看目錄項的變化。

n 利用該殘余目錄項來計算被刪除的文件所在的位置。

n 手工恢復該文件(文件名、首簇高位、簇鏈表修復)。

 

Shift+delete徹底刪除。

刪除后查看目錄項變化。

 

 

可見第一個字節變為E5。同時首簇號高位清零。(這里原本就是0,固待會恢復時無需再改)

看一下簇鏈表,發現被清空。

 

 

然后開始恢復。

E5改為54T)。然后修復簇鏈表。

由於文件大小57kb,固分配四簇。

000003C9H處,根據上文,填上CA 03 00 00...

第四簇填0FFFFFFF

恢復完畢,這時打開F盤可以查看test.txt

 

 

磁盤結構分析

(1)磁盤結構圖

 

 

 

(2)磁盤結構分析重要過程、數據及分析結果

 

Winhex打開物理磁盤。查看start sectors

LBA0即為設備的第0個邏輯存儲塊。

LBA0可知格式為0xEE,為GPT分區表。

 

LBA1

02 00 00 00 00 00 00 00表示分區表項從LBA2開始。0x250行0-3列,80 00 00 00 表示共128個分區。4-7列,80 00 00 00表示每個分區表項大小128字節。

 

 

 

LBA2

8A800H為分區3C盤,系統盤)起始扇區,結束扇區為C88A7FFH,計算得共99.999999523162841796875GB

還有分區名。

 

 

 

 

類似的有F盤,分區6,起始扇區5788E800H,結束扇區74511FFFH,共482883583扇區,230.256835460662841796875GB

 

 

 

 

 

其余扇區類似,不再贅述。

 

 

打開C盤觀察DBR

 

 

 

可知文件系統IDNTFS,每扇區占用字節數為0200H,512字節。每簇扇區數08H,故每簇4kb

hard disk 右鍵template也可查看相關信息。

 

 

0x30開始8字節為MFT起始簇號。C0000H786432 786432*8 = 6291456扇區(字節偏移為 6291456*512= 3221225472 ( 十六進制0xC0000000)

 

 

 

Go to sector 轉到 MFT

 

 

 

 

 

MFT表一項1kb,固下一項偏移為1024/16=40H

 

 

 

再看F盤。與C盤類似。

 

 

 

FAT32分區數據恢復

在虛擬機格式為FAT32H盤進行操作。

1FAT32邏輯磁盤基本信息描述

在H盤新建了2017301510029.txt,大小103kb

FAT32數據恢復過程

Shift+delete刪除

打開winhex

查看到每扇區512字節,一簇8扇區。即4kb

 

 

 

winhex查看目錄項

 

修改首字節,首簇高位。

 

E5改為322),高位仍為00 00(這里是推測原來就是0000而不是不改)

得首簇號0000000AH。轉到FAT表,第10簇。

103kb26簇。

恢復簇鏈表。

恢復成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM