1. 程式人生 > >winhex與磁盤格式與 數據恢復

winhex與磁盤格式與 數據恢復

再看 spa http ... bsp 手工恢復 硬盤 template 畫出

第一階段:

熟悉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也可查看相關信息。

技術分享圖片

再看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簇。

恢復簇鏈表。

技術分享圖片

技術分享圖片

恢復成功。

技術分享圖片

winhex與磁盤格式與 數據恢復