winHex数据恢复(第一篇)
WinHex在我們之前的文章中已經(jīng)介紹過,是在Windows下運(yùn)行的十六進(jìn)制編輯軟件,有完善的分區(qū)管理功能和文件管理功能,能自動(dòng)分析分區(qū)鏈和文件簇鏈,對(duì)硬盤進(jìn)行不同方式不同成度的備份、克隆整個(gè)硬盤,能夠編輯任何一種文件類型的二進(jìn)制內(nèi)容(用十六進(jìn)制顯示),其磁盤編輯器可以編輯物理磁盤或者邏輯磁盤的任意扇區(qū),是手工恢復(fù)數(shù)據(jù)的首選工具軟件。
基礎(chǔ)知識(shí)
硬盤尋址方式
硬盤的常用尋址方式有CHS尋址和LBA尋址,早期的硬盤容量非常小,硬盤的每條磁道都具有相同的扇區(qū)數(shù),早期常采用CHS尋址(Cylinder柱面、Header磁頭、Sector扇區(qū)),隨著硬盤容量的增大,不再劃分柱面和磁頭號(hào),這些數(shù)據(jù)都由硬盤自身保留,所有的物理扇區(qū)都按照特定規(guī)則進(jìn)行線性編號(hào),目前普遍采用LBA這種抽象簡(jiǎn)單的尋址方式。
硬盤分區(qū)結(jié)構(gòu)
所有硬盤在使用之前都需要進(jìn)行分區(qū),硬盤分區(qū)是針對(duì)一個(gè)硬盤進(jìn)行操作的,可以分為主分區(qū)、擴(kuò)展分區(qū)、邏輯分區(qū),主分區(qū)也叫引導(dǎo)分區(qū),系統(tǒng)一般安裝在這個(gè)分區(qū),是引導(dǎo)電腦開機(jī)讀取文件的一個(gè)磁盤分區(qū),一個(gè)硬盤最多可以同時(shí)創(chuàng)建4個(gè)主分區(qū)。擴(kuò)展分區(qū)是一個(gè)概念,實(shí)際是看不到而且無法直接使用的,一般將除了主分區(qū)外的剩余磁盤空間叫做擴(kuò)展分區(qū),擴(kuò)展分區(qū)可以繼續(xù)被分為多個(gè)邏輯分區(qū),具體結(jié)構(gòu)如下圖所示。
磁盤按照分區(qū)結(jié)構(gòu)不同,一般分為MBR、EBR和GPT,分區(qū)后硬盤的第1個(gè)扇區(qū)為MBR(Master Boot Record)扇區(qū),占512b,該扇區(qū)在計(jì)算機(jī)引導(dǎo)過程中起著舉足輕重的作用,包括硬盤主引導(dǎo)程序代碼(占446b)、硬盤分區(qū)表(占64b)和引導(dǎo)區(qū)結(jié)束標(biāo)志“55AA”(占2b)3個(gè)部分。MBR的64b分區(qū)表最多可存儲(chǔ)4個(gè)分區(qū)信息,每一個(gè)分區(qū)信息占16b,其具體結(jié)構(gòu)如下圖所示,DBR是由硬盤MBR裝載的程序段,分區(qū)引導(dǎo)扇區(qū)DBR中包含文件系統(tǒng)扇區(qū)總數(shù)等數(shù)據(jù),對(duì)于數(shù)據(jù)恢復(fù)有較大幫助。
由于MBR支持最多創(chuàng)建4個(gè)分區(qū)在實(shí)際情況下往往是不夠用的,因此就引入了擴(kuò)展分區(qū)的概念,擴(kuò)展分區(qū)嚴(yán)格地講并不是一個(gè)實(shí)際意義的分區(qū),它僅僅是一個(gè)指向下一個(gè)分區(qū)的指針,擴(kuò)展分區(qū)的數(shù)據(jù)存儲(chǔ)在一個(gè)類似MBR的EBR(Extended Boot Record)中,每個(gè)EBR占一個(gè)扇區(qū)(512b),EBR的第一個(gè)分區(qū)表用于描述一個(gè)邏輯分區(qū),第二個(gè)分區(qū)表用于指向下一個(gè)EBR,其具體結(jié)構(gòu)如下圖所示。
GPT磁盤分區(qū)的結(jié)構(gòu)如下圖所示,其包含保護(hù)MBR、GPT頭、分區(qū)表、分區(qū)區(qū)域、分區(qū)表備份、GPT頭備份六部分,其中保護(hù)MBR位于GPT磁盤的第一個(gè)扇區(qū),由磁盤簽名、MBR磁盤分區(qū)表和結(jié)束標(biāo)志組成。GPT頭位于GPT磁盤的第二個(gè)扇區(qū),會(huì)定義分區(qū)表的起始位置、結(jié)束位置、每個(gè)分區(qū)表項(xiàng)的大小和個(gè)數(shù)等信息。分區(qū)表位于GPT磁盤的2~33號(hào)扇區(qū),能夠容納128個(gè)分區(qū)表,GPT分區(qū)區(qū)域通常起始于34號(hào)扇區(qū),由EFI系統(tǒng)分區(qū)(ESP)、微軟保留分區(qū)(MSR)、LDM元數(shù)據(jù)分區(qū)、LDM數(shù)據(jù)分區(qū)、OEM分區(qū)、主分區(qū)等多個(gè)部分組成。分區(qū)表備份是對(duì)分區(qū)表32個(gè)扇區(qū)的完整備份,GPT頭備份位于GPT磁盤的最后一個(gè)扇區(qū),但GPT頭備份并不是GPT頭的簡(jiǎn)單復(fù)制,兩者結(jié)構(gòu)雖然一樣,但其中的參數(shù)卻有所不同。
GPT相對(duì)于MBR的優(yōu)勢(shì)主要體現(xiàn)在其允許每個(gè)磁盤多達(dá)128個(gè)分區(qū),支持高達(dá)18EB的卷大小,GPT允許將主磁盤分區(qū)表和備份磁盤分區(qū)表用于冗余,且性能相對(duì)MBR更加穩(wěn)定。
利用WinHex恢復(fù)
上文把有關(guān)數(shù)據(jù)恢復(fù)的硬盤尋址方式、硬盤分區(qū)結(jié)構(gòu)等基礎(chǔ)理論內(nèi)容進(jìn)行了闡述,下面就結(jié)合以上理論利用WinHex這款十六進(jìn)制編輯器來實(shí)現(xiàn)對(duì)刪除的圖片和分區(qū)來實(shí)現(xiàn)恢復(fù)的效果。
恢復(fù)圖片
首先我們?cè)谙到y(tǒng)H盤存放一個(gè)cat.jpg的圖片文件,通過WinHex掛載該磁盤驅(qū)動(dòng)器,如下圖所示文件瀏覽窗口紅色框中就是該cat.jpg文件,通過十六進(jìn)制查看器,該文件存放的位置對(duì)應(yīng)偏移地址為0058B000,其中jpg圖片格式文件頭對(duì)應(yīng)的十六進(jìn)制碼為FFD8FF,如圖中十六進(jìn)制查看器的紅色框中所示就是該cat.jpg文件頭,后面的十六進(jìn)制數(shù)就對(duì)應(yīng)該cat.jpg文件。
按住Shift+Ctrl鍵徹底刪除cat.jpg文件后,如下圖所示在WinHex的文件瀏覽窗口已經(jīng)看不到該cat.jpg文件,但是通過十六進(jìn)制查看器在0058B000位置,仍然可以看到cat.jpg文件原本占據(jù)的位置數(shù)據(jù)沒有變,這也證明了基礎(chǔ)理論中刪除的數(shù)據(jù)沒有立刻被覆蓋,只是文件索引標(biāo)識(shí)為已刪除,給后續(xù)數(shù)據(jù)恢復(fù)做好了準(zhǔn)備。
WinHex在工具-磁盤工具-通過文件類型恢復(fù)中支持多種文件類型的數(shù)據(jù)恢復(fù),如下圖所示,僅圖片類型就支持包括JPEG、PNG、GIF、TIFF等多種類型,此處選擇恢復(fù)文件的輸出位置,一定不要與已刪除文件在一個(gè)盤符,防止已刪除文件的存儲(chǔ)位置被不小心覆蓋,點(diǎn)擊確定即可得到恢復(fù)文件,如下圖。
恢復(fù)分區(qū)
通常情況下,EBR不會(huì)遭到破壞,或者被破壞的幾率極低,因此實(shí)踐中對(duì)MBR的修復(fù)比較常見,例如某硬盤的MBR由于病毒的破壞被刪除了,針對(duì)分區(qū)的恢復(fù),這里舉個(gè)比較有代表性的例子,即針對(duì)分區(qū)表的恢復(fù)。
我們這里有一塊測(cè)試磁盤如下圖所示,提示異常分區(qū)未分配沒有初始化,但是我們之前使用時(shí)這塊磁盤有兩塊分區(qū),存儲(chǔ)的也都有數(shù)據(jù),現(xiàn)在利用WinHex掛載起來看一看。
掛載之后在winhex的文件瀏覽窗口看到如下圖所示該磁盤有I和J兩個(gè)分區(qū),但是該磁盤的分區(qū)表已經(jīng)損壞,如圖中紅色框中,該分區(qū)表數(shù)據(jù)都變?yōu)?,這也是出現(xiàn)無法識(shí)別分區(qū)的主要原因。
下面就利用DBR分區(qū)數(shù)據(jù)來嘗試恢復(fù)這兩個(gè)分區(qū),NTFS系統(tǒng)的DBR標(biāo)志為EB 52 90在WinHex中搜索得到如下圖結(jié)果其在第128扇區(qū),dbr的28至2f保存的是文件系統(tǒng)扇區(qū)總數(shù),通過數(shù)據(jù)解釋器查看該分區(qū)扇區(qū)總數(shù)為409,599,這里使用當(dāng)前扇區(qū)128加上409,599再加上1得到下一個(gè)分區(qū)的位于第409,728扇區(qū)。
跳轉(zhuǎn)至第409,728扇區(qū),該扇區(qū)頭部發(fā)現(xiàn)DBR標(biāo)志EB 52 90,驗(yàn)證了我們計(jì)算的扇區(qū)大小的正確性,如下圖所示,查看該dbr的28至2f保存的是文件系統(tǒng)扇區(qū)總數(shù),通過數(shù)據(jù)解釋器查看該分區(qū)扇區(qū)總數(shù)為608,255,這里使用當(dāng)前扇區(qū)409,728加上608,255再加上1得到結(jié)果1,017,984,第1,017,984扇區(qū)已經(jīng)非常接近磁盤總扇區(qū)數(shù)1024000,通過WinHex查看后續(xù)也沒有DBR了,則可驗(yàn)證該磁盤有兩個(gè)分區(qū)。
后面利用上文找到的兩個(gè)分區(qū)的起始扇區(qū)和分區(qū)包含的扇區(qū)總數(shù)來恢復(fù)MBR的分區(qū)表,分區(qū)1的起始扇區(qū)為128,分區(qū)1包含409,599個(gè)扇區(qū),轉(zhuǎn)換為十六進(jìn)制起始扇區(qū)為80 00 00 00,扇區(qū)總數(shù)為FF 3F 06 00,分區(qū)2的起始扇區(qū)為409,728,分區(qū)2包含608,255個(gè)扇區(qū),轉(zhuǎn)換為十六進(jìn)制起始扇區(qū)為80 40 06 00,扇區(qū)總數(shù)為FF 47 09 00,兩個(gè)分區(qū)均為NTFS格式,對(duì)應(yīng)標(biāo)志為07,如圖中紅色框部分。
保存以上修改,重新掛載該磁盤后即可看到該磁盤兩個(gè)分區(qū)恢復(fù)正常,分區(qū)中的文件也正常,如下圖所示。
以上對(duì)數(shù)據(jù)恢復(fù)中涉及的基礎(chǔ)知識(shí),包括硬盤的尋址方式、分區(qū)結(jié)構(gòu)以及WinHex的用法等進(jìn)行了介紹,同時(shí)結(jié)合實(shí)際恢復(fù)刪除的圖片和被破壞的分區(qū)來進(jìn)一步闡述理論的正確性,后續(xù)將展開對(duì)數(shù)據(jù)恢復(fù)的更多學(xué)習(xí)內(nèi)容,大家一起學(xué)習(xí)交流。
轉(zhuǎn)載聲明:如果希望轉(zhuǎn)載請(qǐng)于公眾號(hào)(安全fun)后臺(tái)聯(lián)系,或者郵件至anquanfun@163.com,轉(zhuǎn)載時(shí)請(qǐng)保留原作者(安全fun)及出處信息,轉(zhuǎn)載文章禁止聲明原創(chuàng),更多合作也可郵件至anquanfun@163.com,搜索微信公眾號(hào):安全fun,掃碼可關(guān)注。
免責(zé)聲明:本公眾號(hào)所涉及內(nèi)容僅供安全研究與教學(xué)使用,如出現(xiàn)其他風(fēng)險(xiǎn),后果自負(fù)。
總結(jié)
以上是生活随笔為你收集整理的winHex数据恢复(第一篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PR】零基础快速入门教程
- 下一篇: 循环语句的要素C语言,C语言中循环语句(