数据存储与容灾实验 用Winhex恢复磁盘
實驗一 用Winhex恢復磁盤
?
- 實驗目的
1、對于我們日常生活中常出現的,誤刪除、誤分區或誤格式化了磁盤,此實驗目的是將磁盤中丟失的數據進行恢復。
2、學習和掌握使用Winhex各項操作的方法,動手實踐。
3、學會創建磁盤、初始化磁盤和創建卷等操作,對磁盤的概念更清晰。
- 實驗環境
操作環境:Windows10
實驗工具:Winhex
- 實驗原理
創建虛擬磁盤,手動刪除MBR所在扇區的全部數據,然后新建一個虛擬磁盤,將新的磁盤的MBR扇區的數據復制到損壞的磁盤中,然后通過修改它分區表中的磁盤簽名、文件系統類型、扇區起始位置、扇區大小等數據,來實現恢復已損壞的磁盤。
- 實驗過程與分析
- 創建虛擬磁盤
?
如圖1-1所示,在電腦上打開計算機管理,雙擊點入磁盤管理,在這里可以對我們電腦磁盤進行管理。?
?如圖1-2所示,右鍵磁盤管理,選擇創建VHD(即虛擬磁盤)。
?
如圖1-3所示,指定磁盤位置,選擇虛擬磁盤大小、磁盤格式為VHD、磁盤類型為動態擴展。?
?如圖1-4所示,虛擬磁盤已經創建好了。
?如圖1-5所示,右鍵磁盤1,進行初始化磁盤。
如圖1-6所示,選擇磁盤1,使用MBR磁盤分區形式。
?
?如圖1-7所示,右鍵選擇新建簡單卷。
?
?
?
?
如圖1-8、1-9、1-10、1-11、1-12所示,選擇FAT32的卷,完成新建卷操作。
?
?
如圖1-13、1-14所示,磁盤創建已經成功。在此電腦中可以看見新加卷(G:)。接著我放了一張照片進去。
- 用Winhex打開新建的磁盤并分析
?
?如圖2-1所示,在Winhex中選擇并打開剛剛新建的磁盤。
?如圖2-2所示,為新建磁盤的數據,向下拉滾動條,可以看到一個灰色的橫杠,每到一個橫杠為一個扇區,一個扇區共512字節,每兩個數字為一個字節,比如00,接下來分析一下它的數據結構。
?
如圖2-3所示,為磁盤MBR扇區的數據結構。MBR又分為三個部分:第一部分為引導代碼,占用446個字節;第二部分為分區表,占用了64字節;第三部分為55 AA,結束標志,占用了兩個字節。后面我要說的用Winhex軟件來恢復誤刪分區,主要就是恢復第二部分:分區表。
引導代碼的作用:就是讓磁盤具備可以引導的功能。如果引導代碼丟失,分區表還在,那么這個磁盤作為從盤所有分區數據都還在,只是這個磁盤自己不能夠用來啟動系統了。
但如果分區表丟失,后果就是整個磁盤一個分區都沒有,就好像剛買來一個新的硬盤,沒有分過區一樣。是很多病毒喜歡破壞的區域。
?
如圖2-4所示,為分區表各個字節含義。其中文件類型可按下表:
表2-1
| 文件系統 | 文件類型 |
| FAT16 | 06/0E |
| FAT32 | 0B/0C |
| NTFS | 07 |
| ExFAT | 07 |
| 擴展分區 | 0F |
從圖2-4和表2-1可以看出,0C就是FAT32的文件類型。
第13、14、15、16字節的是本分區的總扇區數(即分區1的扇區大小);而前面的四個字節是已用的扇區數(即扇區起始位置),用這兩個扇區數相加,就正好是整個磁盤的總扇區數。
知道了這個信息,如果分區表被破壞,我們只要通過計算這些數值,就可以自己填上,將分區表恢復。
如圖2-5所示接下來,我將磁盤1扇區0的數據都刪除。
?
?
?
如圖2-6、2-7所示,磁盤1已經損壞,顯示沒有初始化。已經無法打開,里面的圖片也找不回來了。
- 新建磁盤并用Winhex恢復損壞磁盤
按照之前創建虛擬磁盤的方法,再創建一個4GB大小的文件系統為FAT32的磁盤,然后用Winhex打開新建磁盤。
如圖3-1所示,這是新建的磁盤2。接下來我們將磁盤2的數據復制給損壞的磁盤1。(有一個需要注意的問題:要從后往前寫入數據)
?
?如圖3-2所示,復制過來之后,進行保存,再去磁盤管理器里刷新一下。
?如圖3-3所示,磁盤1雖然已經初始化了,但是磁盤被分成了兩部分,不是當初創建的那樣。雖然打開磁盤后,圖片已經恢復了,但是如果文件大小大于磁盤2的話,還是不能夠恢復,所以我們需要修改它的分區表,讓磁盤恢復原始狀態。由于已經分析過分區表的組成,接下來進行MBR的恢復。(共64字節,分為4個分區,每個分區占用16字節,一般只使用前兩個分區表項)
?
如圖3-4所示,首先,在第一個字節處填上分區引導標志,若值為80表示活動分區,若值為00表示非活動分區。我這個是非活動分區。所以就是00。
接著是第2、3、4字節(本分區起始磁頭號、扇區號、柱面號),磁盤1與磁盤2是一樣的,所以我們不用改。
第5字節是分區類型符,因為我創建的是FAT32格式,所以是0C。
第6、7、8字節是本分區的結束磁頭號、扇區號、柱面號。現在的磁盤都是按照LBA方式尋址,并不按照C/H/S(及柱面、磁頭、扇區)方式尋址,所以這里填什么一般關系不大。
?
如圖3-5所示,第9、10、11、12字節,本分區已用的扇區數,也就是MBR所占用的扇區數,在查看—顯示—表單控制項中可以查看,為2048(或者在表單控制欄中點分區1,就可以看到下面顯示了分區1的起始扇區)。然后打開查看—顯示—數據解釋器,在32bite中填寫2048(為什么是在32bit中填寫呢,因為4個字節,一個字節8bite,所以就是32bite),就可以轉換成十六進制。或者用計算機轉換得到的十六進制數為800,但是我們要將它反過來,變成00 08 00 00,不足的地方補0。
?
?如圖3-6所示,第13、14、15、16字節是本分區的總扇區數,winhex最下面有顯示分區1扇區總數為20.971.520,我們要用20.971.520這個數減去前面本分區已用的扇區數(即分區1扇區起始位置2048),就可以得到本分區總扇區數為20.969.472,轉為十六進制為13FF800,反過來就是00 F8 3F 01。
如圖3-7所示,已經將分區表修改完成,接下來保存,去磁盤管理器刷新看看。?
?
?
如圖3-8所示,磁盤1已經恢復。但是為了實驗的準確性,再試著恢復文件系統為NTFS的磁盤。
由于操作相同,所以步驟省略,最后使用NTFS格式的MBR也同樣恢復了,所以本次用Winhex恢復磁盤的實驗成功。
- 實驗總結
通過這次實驗,我對Winhex這個軟件有了很大的認識,對我以后打ctf也很有幫助,這個軟件以后應該也會經常使用。我會繼續深入學習如何使用Winhex,多點動手實操。另外,我學會了如何對損壞的磁盤進行恢復,對MBR的結構有了一定的了解,也學習到了磁盤的一些知識。
這次實驗是在Windows操作系統下完成的,可以再嘗試一下在Linux操作系統下對MBR進行模擬損壞并修復。
還有一點需要注意的是,做這個實驗時要關閉電腦的防火墻和實時掃描工具,還有殺毒軟件,不然一打開Winhex就會報錯,并且Winhex會被刪掉。
總結
以上是生活随笔為你收集整理的数据存储与容灾实验 用Winhex恢复磁盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 61空 数独题
- 下一篇: Android developer 阅读