winhex 比較詳細(xì)的圖文使用教程

數(shù)據(jù)恢復(fù)分類:硬恢復(fù)和軟恢復(fù)。所謂硬恢復(fù)就是硬盤出現(xiàn)物理性損傷,比如有盤體壞道、電路板芯片燒毀、盤體異響,等故障,由此所導(dǎo)致的普通用戶不容易取出里面數(shù)據(jù),那么我們將它修好,同時又保留里面的數(shù)據(jù)或后來恢復(fù)里面的數(shù)據(jù),這些都叫數(shù)據(jù)恢復(fù),只不過這些故障有容易的和困難的之分;所謂軟恢復(fù),就是硬盤本身沒有物理損傷,而是由于人為或者病毒破壞所造成的數(shù)據(jù)丟失(比如誤格式化,誤分區(qū)),那么這樣的數(shù)據(jù)恢復(fù)就叫軟恢復(fù)。
這里呢,我們主要介紹軟恢復(fù),因?yàn)橛不謴?fù)還需要購買一些工具設(shè)備(比如pc3000,電烙鐵,各種芯片、電路板),而且還需要懂一點(diǎn)點(diǎn)電路基礎(chǔ),我們這里所講到的所有的知識,涉及面廣,層次深,既有數(shù)據(jù)結(jié)構(gòu)原理,為我們手工準(zhǔn)確恢復(fù)數(shù)據(jù)提供依據(jù),又有各種數(shù)據(jù)恢復(fù)軟件的使用方法及技巧,為我們快速恢復(fù)數(shù)據(jù)提供便利,而且所有軟件均為網(wǎng)上下載,不需要我們投資一分錢。
數(shù)據(jù)恢復(fù)的前提:數(shù)據(jù)不能被二次破壞、覆蓋!
關(guān)于數(shù)碼與碼制:
關(guān)于二進(jìn)制、十六進(jìn)制、八進(jìn)制它們之間的轉(zhuǎn)換我不想多說,因?yàn)樗麑ξ覀償?shù)據(jù)恢復(fù)來說幫助不大,而且很容易把我們繞暈。如果你感興趣想多了解一些,可以到百度里面去搜一下,這方面資料已經(jīng)很多了,就不需要我再多說了。
數(shù)據(jù)恢復(fù)我們主要用十六進(jìn)制編輯器:Winhex (數(shù)據(jù)恢復(fù)首選軟件)
我們先了解一下數(shù)據(jù)結(jié)構(gòu):
下面是一個分了三個區(qū)的整個硬盤的數(shù)據(jù)結(jié)構(gòu)
MBR | C盤 | EBR | D盤 | EBR | E盤 |
MBR,即主引導(dǎo)紀(jì)錄,位于整個硬盤的0柱面0磁道1扇區(qū),共占用了63個扇區(qū),但實(shí)際只使用了1個扇區(qū)(512字節(jié))。在總共512字節(jié)的主引導(dǎo)記錄中,MBR又可分為三部分:第一部分:引導(dǎo)代碼,占用了446個字節(jié);第二部分:分區(qū)表,占用了64字節(jié);第三部分:55AA,結(jié)束標(biāo)志,占用了兩個字節(jié)。后面我們要說的用winhex軟件來恢復(fù)誤分區(qū),主要就是恢復(fù)第二部分:分區(qū)表。
引導(dǎo)代碼的作用:就是讓硬盤具備可以引導(dǎo)的功能。如果引導(dǎo)代碼丟失,分區(qū)表還在,那么這個硬盤作為從盤所有分區(qū)數(shù)據(jù)都還在,只是這個硬盤自己不能夠用來啟動進(jìn)系統(tǒng)了。如果要恢復(fù)引導(dǎo)代碼,可以用DOS下的命令:FDISK /MBR;這個命令只是用來恢復(fù)引導(dǎo)代碼,不會引起分區(qū)改變,丟失數(shù)據(jù)。另外,也可以用工具軟件,比如DISKGEN、WINHEX等。
但分區(qū)表如果丟失,后果就是整個硬盤一個分區(qū)沒有,就好象剛買來一個新硬盤沒有分過區(qū)一樣。是很多病毒喜歡破壞的區(qū)域。
EBR,也叫做擴(kuò)展MBR(Extended MBR)。因?yàn)橹饕龑?dǎo)記錄MBR最多只能描述4個分區(qū)項(xiàng),如果想要在一個硬盤上分多于4個區(qū),就要采用擴(kuò)展MBR的辦法。
MBR、EBR是分區(qū)產(chǎn)生的。
比如MBR和EBR各都占用63個扇區(qū),C盤占用1435329個扇區(qū)……那么數(shù)據(jù)結(jié)構(gòu)如下表:
63
|
1435329
|
63
|
1435329 | 63
|
1253889
|
MBR
|
C盤
|
EBR
|
D盤
|
EBR
|
E盤
|
|
|
擴(kuò)展分區(qū)
|
而每一個分區(qū)又由DBR、FAT1、FAT2、DIR、DATA5部分組成:比如C 盤的數(shù)據(jù)結(jié)構(gòu):
C 盤 |
||||
DBR |
FAT1 |
FAT2 |
DIR |
DATA |
Winhex
Winhex是使用最多的一款工具軟件,是在Windows下運(yùn)行的十六進(jìn)制編輯軟件,此軟件功能非常強(qiáng)大,有完善的分區(qū)管理功能和文件管理功能,能自動分析分區(qū)鏈和文件簇鏈,能對硬盤進(jìn)行不同方式不同程度的備份,甚至克隆整個硬盤;它能夠編輯任何一種文件類型的二進(jìn)制內(nèi)容(用十六進(jìn)制顯示)其磁盤編輯器可以編輯物理磁盤或邏輯磁盤的任意扇區(qū),是手工恢復(fù)數(shù)據(jù)的首選工具軟件。
首先要安裝Winhex,安裝完了就可以啟動winhex了,啟動畫面如下:首先出現(xiàn)的是啟動中心對話框。
這里我們要對磁盤進(jìn)行操作,就選擇“打開磁盤”,出現(xiàn)“編輯磁盤”對話框:
在這個對話框里,我們可以選擇對單個分區(qū)打開,也可以對整個硬盤打開,HD0是我現(xiàn)在正用的西部數(shù)據(jù)40G系統(tǒng)盤,HD1是我們要分析的硬盤,邁拓2G。這里我們就選擇打開HD1整個硬盤,再點(diǎn)確定.然后我們就看到了Winhex的整個工作界面。
最上面的是菜單欄和工具欄,下面最大的窗口是工作區(qū),現(xiàn)在看到的是硬盤的第一個扇區(qū)的內(nèi)容,以十六進(jìn)制進(jìn)行顯示,并在右邊顯示相應(yīng)的ASCII碼,右邊是詳細(xì)資源面板,分為五個部分:狀態(tài)、容量、當(dāng)前位置、窗口情況和剪貼板情況。這些情況對把握整個硬盤的情況非常有幫助。另外,在其上單擊鼠標(biāo)右鍵,可以將詳細(xì)資源面板與窗口對換位置,或關(guān)閉資源面板。(如果關(guān)閉了資源面板可以通過“察看”菜單——“顯示”命令——“詳細(xì)資源面板”來打開)。
最下面一欄是非常有用的輔助信息,如當(dāng)前扇區(qū)/總扇區(qū)數(shù)目……等
向下拉拉滾動條,可以看到一個灰色的橫杠,每到一個橫杠為一個扇區(qū),一個扇區(qū)共512字節(jié),每兩個數(shù)字為一個字節(jié),比如00。
下面我們來分析一下MBR,因?yàn)榍懊嫖覀冋f過,前446個字節(jié)為引導(dǎo)代碼,對我們來說沒有意義,這里我們只分析分區(qū)表中的64個字節(jié)。
分區(qū)表64個字節(jié),一共可以描述4個分區(qū)表項(xiàng),每一個分區(qū)表項(xiàng)可以描述一個主分區(qū)或一個擴(kuò)展分區(qū)(比如上面的分區(qū)表,第一個分區(qū)表項(xiàng)描述主分區(qū)C盤,第二個分區(qū)表項(xiàng)描述擴(kuò)展分區(qū),第三第四個分區(qū)表項(xiàng)填零未用)
每一個分區(qū)表項(xiàng)各占16個字節(jié),各字節(jié)含義如下:(H表示16進(jìn)制)
字節(jié)位置 |
內(nèi)容及含義 |
第1字節(jié) |
引導(dǎo)標(biāo)志。若值為80H表示活動分區(qū);若值為00H表示非活動分區(qū)。 |
第2、3、4字節(jié) |
本分區(qū)的起始磁頭號、扇區(qū)號、柱面號 |
第5字節(jié) |
分區(qū)類型符: 00H——表示該分區(qū)未用 06H——FAT16基本分區(qū) 0BH——FAT32基本分區(qū) 05H——擴(kuò)展分區(qū) 07H——NTFS分區(qū) 0FH——(LBA模式)擴(kuò)展分區(qū) 83H—— Linux分區(qū) |
第6、7、8字節(jié) |
本分區(qū)的結(jié)束磁頭號、扇區(qū)號、柱面號 |
第9、10、11、12字節(jié) |
本分區(qū)之前已用了的扇區(qū)數(shù) |
第13、14、15、16字節(jié) |
本分區(qū)的總扇區(qū)數(shù) |
此硬盤的第一分區(qū)表(即MBR)分析如下:
第一個分區(qū)表項(xiàng)(C盤)
第1字節(jié)80:表示此分區(qū)為活動分區(qū);
第5字節(jié)0B:表示分區(qū)類型為Fat32;
第9、10、11、12字節(jié) 系統(tǒng)隱含扇區(qū)3F 00 00 00:所謂系統(tǒng)隱含扇區(qū)就是本分區(qū)(C盤)之前已用了的扇區(qū)數(shù),這是一個十六進(jìn)制數(shù),但要注意:真正的隱含扇區(qū)數(shù)應(yīng)該反過來填寫(比如:隱含扇區(qū)數(shù)為3E 4D 5A 6F,則反過來就是6F 5A 4D 3E ,這才是實(shí)際的隱含扇區(qū)數(shù))。那么,3F 00 00 00反過來寫就是00 00 003F,也就是3F,將他轉(zhuǎn)成十進(jìn)制數(shù)我們才能知道實(shí)際的隱含扇區(qū)數(shù)是多大。這可以使用計算器來算,單擊工具欄上的“計算器”按鈕,如下圖:
這樣就啟動了計算器
計算器有兩種型號,我們要進(jìn)行進(jìn)制轉(zhuǎn)換,就要選擇“科學(xué)型”
比如我們要將十六進(jìn)制3F轉(zhuǎn)換為十進(jìn)制,就要先選中“十六進(jìn)制”,然后輸入3F
再選中“十進(jìn)制”,十六進(jìn)制3F轉(zhuǎn)為十進(jìn)制等于63。想一想我們前面所講的,MBR占用63個扇區(qū),也就是C盤之前已用了的扇區(qū)數(shù)為63,第64個扇區(qū)就是C盤的第一個扇區(qū),但要注意的是,整個硬盤的LBA地址是從零開始的,0~62的扇區(qū)為MBR。
第13、14、15、16字節(jié)本分區(qū)總扇區(qū)數(shù)(當(dāng)然,這也就是C盤的大小):C1 E6 15 00,同樣,實(shí)際的十六進(jìn)制數(shù)也要反過來才對,也就是00 15 E6 C1,將它轉(zhuǎn)換成十六進(jìn)制數(shù)是1435329。給你出個題,你知道D盤的EBR在哪個扇區(qū)嗎?我們一起來算一下,還記得前面數(shù)據(jù)結(jié)構(gòu)那個表嗎?C盤后面不就是D盤的EBR嗎?D盤EBR的第一個扇區(qū)=MBR+C盤的大小,也就是 63+1435329=1435392。
我們來看看對不對,單擊工具欄上的“轉(zhuǎn)到扇區(qū)”按鈕,出現(xiàn)一個“轉(zhuǎn)到扇區(qū)”對話框
然后輸入1435392,再點(diǎn)“確定”,就到了1435392扇區(qū)了(你可以使用它再轉(zhuǎn)回到0扇區(qū))
這個就是D盤的EBR,也就是D盤的分區(qū)表了,怎么知道的呢?因?yàn)镸BR和EBR的結(jié)構(gòu)是完全一樣的,都是占用了63個扇區(qū),但只用了第一個扇區(qū),其余62個扇區(qū)填零不用。第一個扇區(qū)前446個字節(jié)都為引導(dǎo)代碼,后64個字節(jié)為分區(qū)表,最后2個字節(jié)為55AA結(jié)束標(biāo)志。因?yàn)镋BR不是活動分區(qū),不需要引導(dǎo)代碼,所以前446個字節(jié)為零。
還有另一種方法直接找到D盤的EBR,單擊“訪問”下拉按鈕——“分區(qū)二”——“分區(qū)表”,直接就到1435392扇區(qū).
這樣,分區(qū)表中的第一個分區(qū)表項(xiàng)共十六個字節(jié)分析完畢,下面我們再來看看第二個分區(qū)表項(xiàng)(擴(kuò)展分區(qū))。
第1字節(jié)00:表示非活動分區(qū)
第5字節(jié)05:表示擴(kuò)展分區(qū)
第9、10、11、12字節(jié)00 E7 15 00:本分區(qū)之前的扇區(qū)數(shù)(擴(kuò)展分區(qū)前面也就是MBR和C盤,好像我們前面算過這個數(shù)?)同樣,先將它反過來,就是00 15 E7 00 ,再轉(zhuǎn)為十進(jìn)制是1435392,看來我們前面真的算過這個數(shù)。
第13、14、15、16字節(jié)40 09 29 00:本分區(qū)的總扇區(qū)數(shù)。也就是擴(kuò)展分區(qū)的總扇區(qū)數(shù)。轉(zhuǎn)為十進(jìn)制應(yīng)該是2689344。想一想,用這個數(shù)加上前面的1435392,不正好是整個硬盤的總扇區(qū)數(shù)4124736嗎?
這樣,如果分區(qū)表被破壞,我們只要把這些數(shù)值都計算出來并填上,分區(qū)表不就恢復(fù)了?那么,這里我們?yōu)槭裁床环治龅?、3、4字節(jié)(本分區(qū)的起始磁頭號、扇區(qū)號、柱面號)和第6、7、8字節(jié)(本分區(qū)的結(jié)束磁頭號、扇區(qū)號、柱面號)呢?這是因?yàn)镃/H/S(柱面/磁頭/扇區(qū))是老式硬盤的尋址方式,這種尋址方式來管理硬盤效率很低;而現(xiàn)在幾乎所有的硬盤都支持LBA(全稱是Logic Block Address,即扇區(qū)的邏輯塊地址)尋址方式,這種管理方式簡單高效。在LBA方式下,系統(tǒng)把所有的物理扇區(qū)都統(tǒng)一編號,按照從零到某個最大值排列,這樣只用一個序數(shù)就確定了一個唯一的物理扇區(qū)。
小知識:具體一個硬盤有多少個LBA(扇區(qū))不需要我們?nèi)ビ洃?,因?yàn)橛酶鞣N工具軟件(如MHDD WINHEX等)都可以檢測到。我們只要知道個大概就行了:如10G的硬盤大概有2000萬個扇區(qū);20G的硬盤大概有4000萬個扇區(qū);40G的硬盤大概有8000萬個扇區(qū)……那么,2G的硬盤大概有400萬個扇區(qū)。
那么,你可能要問了:如果要恢復(fù)分區(qū)表,這個起始磁頭號、扇區(qū)號、柱面號還有結(jié)束磁頭號、扇區(qū)號、柱面號應(yīng)該怎么填呢?簡單得很,在后面恢復(fù)分區(qū)表的時候我會告訴你,直接填,都不用計算。
還有興趣來分析一下D盤的EBR嗎?
其實(shí)D盤的EBR和E盤的EBR我們不分析也罷,因?yàn)闊o非也是分區(qū)表,跟MBR的結(jié)構(gòu)是一樣的,但卻很容易把我們繞暈,又因?yàn)镋BR一般不容易被破壞,所以我不建議分析EBR。
但如果你一定要分析,那就分析吧。
單擊“訪問”下拉按鈕——“分區(qū)二”——“分區(qū)表”,直接就到1435392扇區(qū),即D盤的分區(qū)表EBR。
第一個分區(qū)表項(xiàng)(D盤):
第1個字節(jié)00:表示非活動分區(qū)
第5個字節(jié)06:表示FAT16分區(qū)
第9、10、11、12字節(jié)3F 00 00 00:本分區(qū)之前已用了的扇區(qū)數(shù),也就是EBR的數(shù)目,63個。
第13、14、15、16字節(jié)C1 E6 15 00:本分區(qū)的總扇區(qū)數(shù),也就是D盤的扇區(qū)數(shù),先反過來排列就是00 15 E6 C1,轉(zhuǎn)為十進(jìn)制就是1435329。
第二個分區(qū)表項(xiàng)(D盤后面的):
第1個字節(jié)00:表示非活動分區(qū)
第5個字節(jié)05:表示擴(kuò)展分區(qū)
第9、10、11、12字節(jié)00 E7 15 00:本分區(qū)之前已用了的扇區(qū)數(shù),也就是D盤的EBR加D盤總共的大小, 63+1435329=1435392
第13、14、15、16字節(jié)40 22 13 00:本分區(qū)的總扇區(qū)數(shù),1253952,也就是E盤的大小再加上一個EBR的數(shù)目。
單擊“訪問”下拉按鈕——“分區(qū)三”——“分區(qū)表”,直接就到2870784扇區(qū),即E
盤的分區(qū)表EBR。因?yàn)镋盤后面沒有分區(qū)了,所以沒有第二個分區(qū)表項(xiàng)。這里我們就不再研究了,有興趣的話可以自己多備一塊硬盤作從盤,然后自己分分區(qū)研究研究。
通過以上的研究我們總結(jié)一下,MBR在定義分區(qū)的時候,將多余的容量定義為擴(kuò)展分區(qū),指定該擴(kuò)展分區(qū)的起止位置,根據(jù)起始位置指向硬盤的某一個扇區(qū),作為下一個分區(qū)表項(xiàng),接著在該扇區(qū)繼續(xù)定義分區(qū),如果只有一個分區(qū),就定義該分區(qū),然后結(jié)束;如果不止一個分區(qū),就定義一個基本分區(qū)和一個擴(kuò)展分區(qū),擴(kuò)展分區(qū)再指向下一個分區(qū)描述扇區(qū),在該分區(qū)上按照上述原則繼續(xù)定義分區(qū),直至分區(qū)定義結(jié)束。這些用來描述分區(qū)的扇區(qū)形成一個“分區(qū)鏈”,通過這個分區(qū)鏈,就可以描述所有的分區(qū)。系統(tǒng)在啟動時按照分區(qū)鏈的連接順序查找分區(qū),直至找出所有分區(qū)。這個鏈顯然是個開鏈結(jié)構(gòu),如果形成一個環(huán),系統(tǒng)本身并不會去判斷它,它只是按照這個鏈忠實(shí)的查找分區(qū),而不進(jìn)行任何額外的檢測與處理。所謂硬盤邏輯鎖,就是讓分區(qū)鏈形成一個環(huán),這樣系統(tǒng)在啟動時就在分區(qū)表內(nèi)循環(huán),表現(xiàn)為系統(tǒng)無法引導(dǎo),就是從軟盤啟動,也不能進(jìn)入硬盤。明白了其結(jié)構(gòu)原理,解決這個問題就簡單了,目前有很多種方法解決這個問題,后面我們還會講到。系統(tǒng)就是利用這種方法使一個硬盤分區(qū)后看起來象多個硬盤。系統(tǒng)能夠找到C盤以外的其他邏輯盤的唯一辦法就是,沿著EBR所描述的分區(qū)鏈查找分區(qū)。
其實(shí),通常情況下EBR是不會被破壞的,或者破壞的幾率極低極低,通常情況下,都是只有MBR被破壞,那么這種情況下,我們只要把MBR的分區(qū)表64個字節(jié)復(fù)原,其他的分區(qū)順著分區(qū)表所提供的鏈自然而然就出來了。那么,如何才能將分區(qū)表復(fù)原呢?這就要通過計算結(jié)合Winhex強(qiáng)大的功能來實(shí)現(xiàn)了。
下面我們就來模仿分區(qū)表被病毒破壞的情況,將MBR全部填零。我們首先將MBR所在的扇區(qū)選中。鼠標(biāo)指向第一個字節(jié),單擊右鍵,選擇“選塊開始”
然后鼠標(biāo)指向MBR的最后一個字節(jié),單擊右鍵,選擇“選塊結(jié)尾”
然后我們在選區(qū)內(nèi)部單擊鼠標(biāo)右鍵,選擇“編輯”
這樣就有出來一個菜單
然后我們選“填充選塊”,這樣就出來一個填充選塊對話框
在“用十六進(jìn)制填充”的輸入框中輸入“00”,再點(diǎn)“確定”
這樣MBR所在扇區(qū)全部被我們填充為“00”
如果想取消選區(qū),那就用鼠標(biāo)拖動隨便選中一塊區(qū)域,那么原來的選區(qū)就會取消。注意,如果扇區(qū)數(shù)據(jù)被修改了而沒有存盤就會變?yōu)閯e的顏色。
修改了扇區(qū),這時候還沒有存盤生效,如果你想存盤生效的話,就選擇“文件”菜單“保存扇區(qū)”命令。
這時候就會出現(xiàn)一個提示,如果你不想存盤了就點(diǎn)取消,如果想存盤,就點(diǎn)確定,再點(diǎn)是。
好,這樣就存盤了,扇區(qū)被修改的數(shù)據(jù)又變?yōu)楹谏?/p>
這樣我們就把分區(qū)表給刪除了,這時候必須重新啟動才能生效,如果你打開我的電腦,會發(fā)現(xiàn)三個分區(qū)(F 、G、 H)還在那里,并且里面的數(shù)據(jù)還能正常使用。
現(xiàn)在,我們關(guān)閉所有程序?qū)㈦娔X重新啟動……
經(jīng)過不長時間的等待,電腦啟動起來了,我們打開我的電腦看看,發(fā)現(xiàn)F 、G 、H三個分區(qū)不見了。
再打開Winhex發(fā)現(xiàn)MBR全部為零了,下面我們就著手開始手工恢復(fù)分區(qū)表
首先恢復(fù)引導(dǎo)代碼,這最簡單了,只要用Winhex到別的系統(tǒng)盤把引導(dǎo)代碼復(fù)制過來就行了。我現(xiàn)在的機(jī)器上不是掛著兩個硬盤嗎?一個邁拓2G,一個西數(shù)40G,西數(shù)40G是我的系統(tǒng)盤,那就從這個盤上復(fù)制就行了。
單擊“磁盤編輯器”按鈕
出現(xiàn)“編輯磁盤”對話框
選擇“HD0 WDC WD400EB---00CPF0”,點(diǎn)“確定”
這樣我們就把系統(tǒng)盤的分區(qū)表給打開了,注意,現(xiàn)在我們是打開了兩個窗口,當(dāng)前的窗口是“硬盤0”,在標(biāo)題欄上有顯示。另外,打開窗口菜單也能看出來,當(dāng)前窗口被打上一個勾,如果想切換回原來的窗口,就點(diǎn)擊“硬盤1”。
首先選中系統(tǒng)盤的引導(dǎo)代碼
然后在選區(qū)中單擊鼠標(biāo)右鍵,選“編輯”
又出來一個菜單,然后我們選“復(fù)制選塊”——“正常”
然后我們切換回硬盤1窗口,在零扇區(qū)的第一個字節(jié)處單擊鼠標(biāo)右鍵,選“編輯”
然后選“剪貼板數(shù)據(jù)”——“寫入……”
出現(xiàn)一個窗口提示,點(diǎn)“確定”
這樣,我們就把一個正常系統(tǒng)盤上的引導(dǎo)代碼復(fù)制過來了。
下面,我們就開始恢復(fù)分區(qū)表(共64個字節(jié),分為4個分區(qū)表項(xiàng),每個分區(qū)表項(xiàng)占用16個字節(jié),一般只使用前兩個分區(qū)表項(xiàng)),我們首先來恢復(fù)第一個分區(qū)標(biāo)項(xiàng)(也就是用來描述C盤的)。
首先,在第1個字節(jié)處(0扇區(qū)倒數(shù)第五行,倒數(shù)第二個字節(jié))填上分區(qū)引導(dǎo)標(biāo)志,因?yàn)镃盤是活動分區(qū),所以填上80。
接著是第2、3、4字節(jié)(本分區(qū)起始磁頭號、扇區(qū)號、柱面號),填上:01 01 00。
第5字節(jié)是分區(qū)類型符,因?yàn)樵菴盤是Fat32格式,所以填上:0B。那么,如果你不知道C盤是什么格式怎么辦呢?你會說問問客戶呀,那么如果他也不知道呢?別著急,后面在說恢復(fù)DBR的時候我會教你怎么分辨分區(qū)的格式。
第6、7、8字節(jié)是本分區(qū)的結(jié)束磁頭號、扇區(qū)號、柱面號,這怎么知道呢?別著急,現(xiàn)在的磁盤都是按照LBA方式尋址,并不按照C/H/S(及柱面、磁頭、扇區(qū))方式尋址,所以這個地方你填些什么一般關(guān)系不大,但是我要告訴你有一個通用的填法,那就是:FE FF FF。
第9、10、11、12字節(jié),本分區(qū)之前已用了的扇區(qū)數(shù),也就是MBR所占用的扇區(qū)數(shù),那不是63嗎?對,但是要將63轉(zhuǎn)為十六進(jìn)制數(shù),再反過來倒著填寫上。還記得怎么用計算器嗎?將63轉(zhuǎn)為十六進(jìn)制數(shù)是3F,不夠四個字節(jié)前面加零,也就是00 00 00 3F,再將此數(shù)從右向左依次序反過來就是3F 00 00 00。
第13、14、15、16字節(jié)是本分區(qū)的總扇區(qū)數(shù),也就是C盤的大小,這就要通過稍微一點(diǎn)點(diǎn)計算來得到了。因?yàn)镃盤是從第63個扇區(qū)開始,而C盤后面緊接著的是EBR,所以用EBR所在的第一個扇區(qū)數(shù)減去63就是C盤的大小。那么如何才能找到EBR所在的第一個扇區(qū)呢?我們前面說過,EBR的結(jié)構(gòu)和MBR是一樣的,所以,EBR的結(jié)束標(biāo)志也一定是55AA,那么,只要我們找到這個結(jié)束標(biāo)志,再看看這個扇區(qū)是不是EBR不就行了?
單擊“搜索”——“查找十六進(jìn)制數(shù)值……”,然后出來一個對話框
在文本框中輸入“55AA”,搜索框中選“全部”,然后選中“條件”,把偏移量設(shè)置為“512=510”。
再單擊“確定”。畫面如下:
首先找到第一個“55AA”,我們看到,個扇區(qū)在第63個扇區(qū)上,并不是我們要找的EBR,再按F3繼續(xù)查找
又找到好幾個扇區(qū),都不是,那么下面這個扇區(qū)是不是?
前面我們說過,EBR的結(jié)構(gòu)和MBR的結(jié)構(gòu)是一樣的,所以在倒數(shù)第五行倒數(shù)第二個字節(jié)應(yīng)該是00 01,并且前446個字節(jié)應(yīng)該是0,顯然這也不是EBR,繼續(xù)按F3查找……終于找到了真正的EBR,在1435392扇區(qū)。
小技巧:現(xiàn)在的硬盤都比較大,要逐個扇區(qū)的查找55AA確實(shí)太慢了,那么有沒有辦法快點(diǎn)呢?有,那就是先問問客戶C盤大概有多大,大多數(shù)客戶還是知道的,比如他說C盤大概有10個G,那么你就不要從頭開始找了,因?yàn)槟菍?shí)在太慢了。10個G大概是2000萬個扇區(qū),那么你可以用轉(zhuǎn)到扇區(qū)命令直接到1900萬扇區(qū),從那個地方再開始找不就省事多了。
用1435392減去63,得到1435329,再轉(zhuǎn)為16進(jìn)制,就是15E6C1,將他倒轉(zhuǎn)過來就是C1E61500,這就是C盤的大小。這樣,第一個分區(qū)表項(xiàng)填寫完畢,我們保存一下,再接著填寫第二個分區(qū)表項(xiàng)。
第二個分區(qū)表第1個字節(jié):因?yàn)槭欠腔顒臃謪^(qū),所以寫00
第2、3、4字節(jié),填寫01 01 00(通用的)
第5字節(jié):因?yàn)槭菙U(kuò)展分區(qū),所以填寫0F
第6、7、8字節(jié):填寫FE FF FF(通用)
第9、10、11、12字節(jié)是本分區(qū)之前已用了的扇區(qū)數(shù),應(yīng)該就是C盤大小加63,也就是1435392,前面剛計算出來的,轉(zhuǎn)為十六進(jìn)制數(shù)再反過來就是00 E7 15 00
第13、14、15、16字節(jié)是本分區(qū)的總扇區(qū)數(shù),也就是擴(kuò)展分區(qū)的總扇區(qū)數(shù),也就是用整個硬盤的大小減去C盤的大小再減去63,即4124736-1435329-63=2689344,轉(zhuǎn)為十六進(jìn)制就是290940,反過來就是40092900。
這樣,第二個分區(qū)表項(xiàng)就填寫完了。
不要忘了把最后的結(jié)束標(biāo)志55AA填上,這樣,MBR就全恢復(fù)完了,最后,保存,再重新啟動……
啟動完畢,迫不及待的打開我的電腦,發(fā)現(xiàn)三個分區(qū)全部又回來了,并且里面的數(shù)據(jù)完好無損。
再右擊“我的電腦”,選“管理”
出現(xiàn)一個對話框,選“磁盤管理”,在右邊可以看到磁盤一的三個分區(qū)(Fat32、Fat16、Ntfs)全部都回來了,至此,手工恢復(fù)分區(qū)表順利完成。
手工恢復(fù)數(shù)據(jù)恢復(fù)成功率比較高,而且比較有趣味和挑戰(zhàn)性,能找回許多傻瓜似的軟件所找不回來的文件,但是要求工程師一定要有耐性,而且一定要保持清醒,清楚自己正在操作什么,操作完了會有什么后果,能不能退回到上一步狀態(tài)。特別是對一些破壞性操作,一定要考慮周到,只要條件允許,就一定要在操作之前進(jìn)行備份,否則會造成“血”的教訓(xùn),切記?。?!
下面我們會說到手工恢復(fù)DBR、FAT(此教程被收錄在付費(fèi)教程中),這些比手工恢復(fù)分區(qū)表還要復(fù)雜,更需要大量的計算。再說完了使用Winhex手工恢復(fù)數(shù)據(jù)之后,我們會說到一些數(shù)據(jù)恢復(fù)軟件,結(jié)合數(shù)據(jù)恢復(fù)軟件會使數(shù)據(jù)恢復(fù)成功率大大提高,但有一些軟件在掃描過程中會對原盤破壞數(shù)據(jù),在使用中一定要謹(jǐn)慎?。。《彝粋€軟件,一個新手用和一個老手用數(shù)據(jù)恢復(fù)成功率絕對是不一樣的,這些軟件我們會免費(fèi)贈送,絕對不會讓你學(xué)習(xí)了資料卻找不到軟件的。
FAT文件系統(tǒng)下的手工數(shù)據(jù)恢復(fù)案例
關(guān)鍵詞:數(shù)據(jù)恢復(fù),數(shù)據(jù)恢復(fù)資料,數(shù)據(jù)恢復(fù)技術(shù)
本文針對FAT分區(qū)。使用工具:winhex(非數(shù)據(jù)恢復(fù)專用)
磁盤的具體存儲原理,這里我解釋一下:
1、剩余扇區(qū)是什么:剩余扇區(qū)有分區(qū)內(nèi)的剩余扇區(qū)和整個磁盤的剩余扇區(qū)。
先說分區(qū)內(nèi)的扇區(qū):描述磁盤容量的單位是扇區(qū),分區(qū)內(nèi)部又是采用簇來管理的。通常情況下,扇區(qū)的容量是512b,簇的單位容量大于等于扇區(qū)的容量。以具體事例來講,一個 7gb的fat32分區(qū),其簇的大小是4k,相當(dāng)于8個扇區(qū),而分區(qū)內(nèi)的存儲單位是4k,分區(qū)的扇區(qū)總數(shù)如果不是8的倍數(shù),那余下來的扇區(qū)便是剩余扇區(qū)了。
整個磁盤的剩余扇區(qū)與上述原理相似,不同的是,每個分區(qū)的結(jié)束必須以254頭,63扇為結(jié)束(也應(yīng)該是老的磁盤管理模式留下的弊端吧!雖然分區(qū)內(nèi)是以線性邏輯扇區(qū)為首要參數(shù)的)也就是說,如果磁盤的總?cè)萘空梅植粌粢粋€柱面的容量(1*254*63*512b=8193024b),那么,剩下的容量便是整個磁盤的剩余扇區(qū)了,其最大也就是大約7.8m。這也是通常情況下,分區(qū)的最小容量是7.8m,分區(qū)容量是8193024b倍數(shù)的原因。(簡圖并未畫出整個磁盤的剩余扇區(qū),大家理解吧!)
2、對于fat32的保留扇區(qū)的數(shù)目,一般來說是32個,但也不肯定是,有時候可能會是38個或其他數(shù)目,當(dāng)然也可以在dbr中的bpb(bios parameter block)參數(shù)表中更改,后面要講到在數(shù)據(jù)恢復(fù)中了解他的重要性。(dbr的參數(shù)說明到數(shù)據(jù)恢復(fù)網(wǎng) 找找)
3、在小容量的磁盤分區(qū)中也存在fat16的分區(qū)格式,原理嗎?和軟盤的存儲原理相,見數(shù)據(jù)恢復(fù)網(wǎng) “反黑行動之?dāng)?shù)據(jù)恢復(fù)”。
下面我們進(jìn)入實(shí)戰(zhàn):
第一種情況,分區(qū)被格式化。如果格式化以后,當(dāng)然可以用現(xiàn)成的數(shù)據(jù)恢復(fù)軟件來恢復(fù),但軟件畢竟是軟件,并不能應(yīng)對多變的復(fù)雜的情況。而手工不同,如果對磁盤結(jié)構(gòu)了解,是可以最大程度的恢復(fù)的。我們拋開數(shù)據(jù)恢復(fù)軟件來看和通過手工來恢復(fù)被格式化的磁盤分區(qū)。
對于fat格式的分區(qū)(包括fat16),format命令會重建dbr扇區(qū),清空兩個fat表,清空分區(qū)的第一個簇(存放原根目錄)。不管是快速格式化還是完全格式化(快速格式化和完全格式化的區(qū)別在于他們是否對所涉及到的磁盤扇區(qū)進(jìn)行檢測掃描,清除上面的數(shù)據(jù)事都要做得)。對于dbr,分區(qū)只要正確格式化就會生成正確的dbr,故而重點(diǎn)是fat表和原根目錄(如果原根目錄大于一個簇,這僅僅是第一個簇,為了方便,以后就以原根目錄稱)的問題。如果你格式花前備份了此分區(qū)的fat表和根目錄。那么,只要將dbr初始化,恢復(fù)fat表和根目錄即可完全恢復(fù)數(shù)據(jù)。不過,既然是被格式化,那一定沒有fat表和根目錄的備份(廢話?。。。?。繼續(xù):
先說根目錄,跟目錄的第一扇一但清空,別無法找回了。所以,格式化前存儲在根目錄的文件就會因其在第一扇存儲的文件特征描述表丟失而很難找回了,除非你知道文件中包含的特征字符串,根據(jù)其在整個分區(qū)內(nèi)查找,又確定文件的大小,而恰好要恢復(fù)的文件又是在磁盤內(nèi)連續(xù)存儲的。
再說fat表,fat表的丟失對交叉存儲的文件來說是幾乎毀滅的災(zāi)難。原則上如果丟失,就只能恢復(fù)從文件第一簇開始的連續(xù)幾簇了。但一般如要恢復(fù)的文件較小或分區(qū)并未經(jīng)過頻繁的文件刪增的話, 還是有希望的。
手動填寫fat表是不現(xiàn)實(shí)的,我們只好先讓原來的目錄結(jié)構(gòu)重現(xiàn),再想辦法。windows的磁盤文件格式是tree型的,格式化只是將tree的根折,在根折斷以后,其實(shí)就象生成了多顆tree(想想數(shù)據(jù)結(jié)構(gòu))。如果我們要恢復(fù)的文件全部位于一個子目錄當(dāng)中。那好了,我們只要將這顆子樹的樹根放入原tree 的根位置上,即可生成一顆新樹。推介使用winhex,下面以winhex為例具體而言,首先,若磁盤未格式化或格式化格式不太正確,先格式化,以生成可參照的dbr和fat表。接著我們在分區(qū)中尋找相關(guān)的字符串來確定此子樹的'根'位置。,如記得原目錄中有sjhfnet.txt的文件(選擇其他目錄沒有或很少有此文件名的文件),可在整個分區(qū)內(nèi)查找'sjhfnet txt',再根據(jù)相關(guān)特征確定。這時候注意一下,我們需要目錄中提供的'.'目錄來推測原分區(qū)的一些特性,主要是dbr中的bpb參數(shù),如保留扇區(qū)的數(shù)目。(一般是不不會錯的,但如果有那怕一個扇區(qū)的出入,整個分區(qū)中目錄的映射將不能套用,還是看看吧!),是不是要問,'.'目錄是什么?學(xué)過dos的人都知道,目錄'.' 表當(dāng)前所在目錄,'..'表上級目錄,在32個子節(jié)的目錄項(xiàng)中,包含有和其他目錄項(xiàng)相同的特征,我們關(guān)心目錄的位置(在原分區(qū)格式的第幾個簇中),他應(yīng)該是等于他所在的簇號的!也就是
看一下偏移量為15h 14h 1bh 1ah的數(shù)值是否等于現(xiàn)在簇號。在winhex中格式化后的磁盤可清楚的列出當(dāng)前簇的簇號,可比較一下(可能需要16進(jìn)制與10進(jìn)制的轉(zhuǎn)換)。
相同不說了,如果不相同,也應(yīng)該相差不多。計算一下相差的簇的數(shù)目,然后在本分區(qū)dbr扇區(qū)的0eh~0fh作相應(yīng)增減,是保留扇區(qū)的數(shù)目回到原來的數(shù)目。重起一下計算機(jī),是新的dbr生效,清空現(xiàn)fat表(根目錄簇可以不清空,因后邊講到會覆蓋的)。文件目錄項(xiàng)的映射與實(shí)際地址便正確的結(jié)合了。(不明白嗎?想想原理,努力消化一下)
接著將找到的簇復(fù)制----〉定位到現(xiàn)在的根目錄----〉寫入。
打開“資源管理器“,瀏覽,出來了嗎?
慢!還沒完,現(xiàn)在的目錄結(jié)構(gòu)是出來了,但還不能訪問,因?yàn)閒at表所記錄的簇還是空閑的。怎么辦?手動寫,算一下,可能寫完得30年吧!呵呵!哪。。。。,其實(shí),如果要恢復(fù)的文件大小都在1簇范圍內(nèi),可在win98下運(yùn)行磁盤掃描程序,在出現(xiàn)修復(fù)的提示時選相應(yīng)的選象修復(fù)即可(別選“刪除涉及到的文件”選項(xiàng),另外,win2000下不行,掃描程序會直接刪除文件的)。這樣,大小在1簇范圍的文件別完全恢復(fù)了(包括文件)。那如何在這種情況下恢復(fù)大于1個簇的文件呢?一是你可以寫一個小的程序來實(shí)現(xiàn)涉及到的簇的連續(xù)。如果你不會,那么也不難,得一個一個文件的來。打開winhex,使用它的目錄模板跳轉(zhuǎn)到文件的存儲區(qū),從當(dāng)前簇復(fù)制大小為文件大小的一塊連續(xù)數(shù)據(jù),寫入新文件中(記得寫在其他分區(qū)中),即可!當(dāng)然,如果簇數(shù)較少,可直接在fat1中改動。
另外,這樣恢復(fù)的文件也不一定正確。要看當(dāng)初文件的存儲是否連續(xù)了?如果恢復(fù)后的文件不能用,那。。。。聽天由命吧?。。。ㄒ茨阍诖疟P中在查找,分析,自己把它連接起來。不過,工作量嗎?。。。)
這樣恢復(fù)的是以前一個子目錄的數(shù)據(jù)。如果有多個目錄的數(shù)據(jù)要恢復(fù),可用同樣的方法替換根目錄(第一個數(shù)據(jù)簇),也可以采用手動建立根目錄的方法,不過,別在資源管理器中進(jìn)行,手動在winhex中做吧!還有,要是恢復(fù)的目錄中有多個簇,再用同樣的方法,查找,作為根目錄。
這是分區(qū)格式為fat32的情況,如fat16則不需考慮保留扇區(qū)的數(shù)目情況,fat16無保留扇區(qū)。
這是有目錄項(xiàng)的情況。
再來說一下在無目錄項(xiàng)參照的情況:
以下默認(rèn)為欲恢復(fù)文件是存儲在FAT32文件格式當(dāng)中的文件。
假如你的磁盤已經(jīng)被xxx破壞的一塌糊涂?;蛘咭呀?jīng)經(jīng)過了N位高手二次處理"加工"過了,什么工具軟件都用過了!結(jié)果仍然沒有看到你需要的數(shù)據(jù)的影子?;蛘吣阋謴?fù)的數(shù)據(jù)本來就很少(若干源代碼,或是若干論文,若干小的數(shù)據(jù)庫,或是確認(rèn)在數(shù)據(jù)丟失前正好做了磁盤碎片整理),不值得采用我上面采用的方法。你可以采用在磁盤內(nèi)通過查找的方法,總結(jié)來找回數(shù)據(jù)(不要笑,有技巧的,況且,也許這是唯一的方法?。?/p>
可以通過磁盤文件的存儲特征和文件固有的類型特征來考慮??催^《反黑行動之?dāng)?shù)據(jù)恢復(fù)》(風(fēng)般的男人著)應(yīng)該可以知道,文件在磁盤內(nèi)至少是以扇區(qū)為單位的,也就是說,每個文件在磁盤內(nèi)實(shí)際存儲的開始,一定是某扇區(qū)的開始。這是其一,其二是每種類型的文件都有其特定的文件標(biāo)志,可根據(jù)文件的特定標(biāo)志(通常還是在文件的開頭)與其在磁盤的位置來圈定。
如果是文本文件,可通過在磁盤內(nèi)查找特征字串的方法來找到。不過,稍有知識的人是都知道的,不說了。(還是使用winhex吧!硬盤速度可以的話,應(yīng)該查找1G的空間不超過1分鐘)
我們來通過具體的例子看一看已加密或無明顯特征字串的情況(這是最通常的情況)。以一Office文檔的恢復(fù)為例。
Office文檔的實(shí)際構(gòu)成總是以
“00000000 D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 邢.唷??.......”
開頭,以下列二進(jìn)制特征為尾:
---------------------------------------------------------------------------------
00148940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
001489F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00148A00 01 00 FE FF 03 0A 00 00 FF FF FF FF 06 09 02 00 ..?....????....
00148A10 00 00 00 00 C0 00 00 00 00 00 00 46 18 00 00 00 ....?.....F....
00148A20 4D 69 63 72 6F 73 6F 66 74 20 57 6F 72 64 20 44 Microsoft Word D
00148A30 6F 63 75 6D 65 6E 74 00 0A 00 00 00 4D 53 57 6F ocument.....MSWo
00148A40 72 64 44 6F 63 00 10 00 00 00 57 6F 72 64 2E 44 rdDoc.....Word.D
00148A50 6F 63 75 6D 65 6E 74 2E 38 00 F4 39 B2 71 00 00 ocument.8.?瞦..
---------------------------------------------------------------------------------
(這是在winhex中顯示的情況,此部分內(nèi)容是最后扇區(qū)的中間部分的內(nèi)容#
既然文件頭尾標(biāo)志已確定,即可在磁盤中搜索了。可搜索所有的“D0 CF 11 E0 A1 B1 1A E1 ”,保存其位置。在搜索特定的尾標(biāo)志,保存其位置。觀看在winhex“位置管理器”中的所保存位置。刪除位置不是以"000H","002H", "004H","006H","008H"結(jié)尾的文件頭標(biāo)志(因?yàn)樯葏^(qū)容量512B=200HB)。刪除不合位置特征的尾標(biāo)志(通過對200H取余的結(jié)果看)。再刪除多出來的頭或尾標(biāo)志。(應(yīng)該成對出現(xiàn))
此例以Word 2000文檔為例。通常情況下,word文檔的大小不可能太大。在winhex的位置管理器當(dāng)中,所有的位置是以地址來排序的。所以,看一下成對的頭尾標(biāo)志其偏移是否合邏輯。如不合,刪了!
那么,剩下來的便是最有可能的了。剩下的,不用說了吧!將每一對頭尾地址之間的數(shù)據(jù)保存即可。(成不成功看命吧?。?/p>
這是以O(shè)ffice文件為例說明。其實(shí)大多數(shù)文件都有特征標(biāo)志,可參看相關(guān)資料或自己研究。對于沒有特定尾標(biāo)志的文件,它的結(jié)構(gòu)也有特征,結(jié)合頭標(biāo)志和結(jié)構(gòu)看吧!(不過可能稍難點(diǎn)!) 還有,恢復(fù)的文件當(dāng)中可能有你刪除了的文件,沒有辦法。只好一視同仁了。不過一般情況下,已刪除文件的開頭是最先被系統(tǒng)的其他文件覆蓋的,可能也能降低工作量吧!
相關(guān)文章
- 這篇文章主要介紹了圖解WinHex使用入門教程,需要的朋友可以參考下2019-04-13
- 這篇文章主要介紹了Winhex入門教程之Winhex的簡單使用教程,需要的朋友可以參考下2019-04-12
- 本文介紹一種萬能的磁盤數(shù)據(jù)恢復(fù)方法,使用工具為winhex,需要的朋友可以參考下2019-04-12
winhex漢化版64位(16進(jìn)制編輯器) V19.8 SR-4 專家版
一款最新免費(fèi)以十六進(jìn)制編輯器為核心的數(shù)據(jù)處理高級輔助工具。雖然我們更喜歡稱之為十六進(jìn)制編輯器,但它確實(shí)有著很多諸如數(shù)據(jù)恢復(fù)、低級數(shù)據(jù)處理等其他強(qiáng)大的功能,當(dāng)然了2019-04-12最完整的winhex教程集合 winhex數(shù)據(jù)恢復(fù)入門使用教程
這個winhex教程集合是腳本之家小編特意為大家整理的一些資料教程集合,包括相關(guān)軟件與教程都在這篇內(nèi)容上了2016-10-23- 這本是你值得收藏的書籍。本教程是困惑的浪漫-高志鵬大師耗費(fèi)大量心血原創(chuàng),擁有完全的著作權(quán)和知識產(chǎn)權(quán)。本書由徐旺森整理2016-10-23
WinHex數(shù)據(jù)恢復(fù)使用教程 中文WORD版 3.32MB
本書主要介紹軟恢復(fù),因?yàn)橛不謴?fù)還需要購買一些工具設(shè)備(比如Pc3000,電烙鐵,各種芯片、電路板),而且還需要懂一點(diǎn)點(diǎn)電路基礎(chǔ),我們這里所講到的所有的知識,涉及面廣,2016-08-31winhex恢復(fù)數(shù)據(jù)工具 v18.9 綠色特別版
winhex漢化破解版是一款以通用的 16 進(jìn)制編輯器為核心,專門用來對付計算機(jī)取證、數(shù)據(jù)恢復(fù)、低級數(shù)據(jù)處理、以及 IT 安全性、各種日常緊急情況的高級工具2016-07-11- 有些游戲需要自己專用的下載器才可以下載安裝使用,現(xiàn)如今,使用WinHex就可以查看這些下載器的真是下載地址了,然后我們就可以使用迅雷進(jìn)行下載了,有興趣的朋友們可以看看2015-04-20
- WinHex修改十六進(jìn)制文件后無法保存怎么辦?下載WinHex以為是綠色版的,于是我們編輯文件后老是保存不了,說什么沒有權(quán)限寫文件,其實(shí)這個問題的根源是因?yàn)槟愕能浖]有輸入2015-01-22