發(fā)布時(shí)間:2019-04-13 00:05:04 作者:佚名 我要評論這篇文章主要介紹了winhex 比較詳細(xì)的圖文使用教程,需要的朋友可以參考下數(shù)據(jù)恢復(fù)分類:硬恢復(fù)和軟恢復(fù)。所謂硬恢復(fù)就是硬盤出現(xiàn)物理性損傷,比如有盤體壞道、電路板芯片燒毀、盤體異響,等故障,由此所導(dǎo)致的普通用戶不容易取出里面數(shù)據(jù),那么我們將它修好,同時(shí)又保留里面的數(shù)據(jù)或后來恢復(fù)里面的數(shù)據(jù),這些都叫數(shù)據(jù)恢復(fù),只不過這些故障有容易的和困難的之分;所謂軟恢復(fù),就是硬盤本身沒有物理損傷,而是由于人為或者病毒破壞所造成的數(shù)據(jù)丟失(比如誤格式化,誤分區(qū)),那么這樣的數(shù)據(jù)恢復(fù)就叫軟恢復(fù)。 WinHex (專業(yè)16進(jìn)制編輯器) v19.8 中文綠色特別版
這里呢,我們主要介紹軟恢復(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): 下面是一個(gè)分了三個(gè)區(qū)的整個(gè)硬盤的數(shù)據(jù)結(jié)構(gòu)
MBR,即主引導(dǎo)紀(jì)錄,位于整個(gè)硬盤的0柱面0磁道1扇區(qū),共占用了63個(gè)扇區(qū),但實(shí)際只使用了1個(gè)扇區(qū)(512字節(jié))。在總共512字節(jié)的主引導(dǎo)記錄中,MBR又可分為三部分:第一部分:引導(dǎo)代碼,占用了446個(gè)字節(jié);第二部分:分區(qū)表,占用了64字節(jié);第三部分:55AA,結(jié)束標(biāo)志,占用了兩個(gè)字節(jié)。后面我們要說的用winhex軟件來恢復(fù)誤分區(qū),主要就是恢復(fù)第二部分:分區(qū)表。 引導(dǎo)代碼的作用:就是讓硬盤具備可以引導(dǎo)的功能。如果引導(dǎo)代碼丟失,分區(qū)表還在,那么這個(gè)硬盤作為從盤所有分區(qū)數(shù)據(jù)都還在,只是這個(gè)硬盤自己不能夠用來啟動(dòng)進(jìn)系統(tǒng)了。如果要恢復(fù)引導(dǎo)代碼,可以用DOS下的命令:FDISK /MBR;這個(gè)命令只是用來恢復(fù)引導(dǎo)代碼,不會引起分區(qū)改變,丟失數(shù)據(jù)。另外,也可以用工具軟件,比如DISKGEN、WINHEX等。 但分區(qū)表如果丟失,后果就是整個(gè)硬盤一個(gè)分區(qū)沒有,就好象剛買來一個(gè)新硬盤沒有分過區(qū)一樣。是很多病毒喜歡破壞的區(qū)域。 EBR,也叫做擴(kuò)展MBR(Extended MBR)。因?yàn)橹饕龑?dǎo)記錄MBR最多只能描述4個(gè)分區(qū)項(xiàng),如果想要在一個(gè)硬盤上分多于4個(gè)區(qū),就要采用擴(kuò)展MBR的辦法。 MBR、EBR是分區(qū)產(chǎn)生的。 比如MBR和EBR各都占用63個(gè)扇區(qū),C盤占用1435329個(gè)扇區(qū)……那么數(shù)據(jù)結(jié)構(gòu)如下表:
而每一個(gè)分區(qū)又由DBR、FAT1、FAT2、DIR、DATA5部分組成:比如C 盤的數(shù)據(jù)結(jié)構(gòu):
Winhex Winhex是使用最多的一款工具軟件,是在Windows下運(yùn)行的十六進(jìn)制編輯軟件,此軟件功能非常強(qiáng)大,有完善的分區(qū)管理功能和文件管理功能,能自動(dòng)分析分區(qū)鏈和文件簇鏈,能對硬盤進(jìn)行不同方式不同程度的備份,甚至克隆整個(gè)硬盤;它能夠編輯任何一種文件類型的二進(jìn)制內(nèi)容(用十六進(jìn)制顯示)其磁盤編輯器可以編輯物理磁盤或邏輯磁盤的任意扇區(qū),是手工恢復(fù)數(shù)據(jù)的首選工具軟件。 首先要安裝Winhex,安裝完了就可以啟動(dòng)winhex了,啟動(dòng)畫面如下:首先出現(xiàn)的是啟動(dòng)中心對話框。 這里我們要對磁盤進(jìn)行操作,就選擇“打開磁盤”,出現(xiàn)“編輯磁盤”對話框: 在這個(gè)對話框里,我們可以選擇對單個(gè)分區(qū)打開,也可以對整個(gè)硬盤打開,HD0是我現(xiàn)在正用的西部數(shù)據(jù)40G系統(tǒng)盤,HD1是我們要分析的硬盤,邁拓2G。這里我們就選擇打開HD1整個(gè)硬盤,再點(diǎn)確定.然后我們就看到了Winhex的整個(gè)工作界面。 最上面的是菜單欄和工具欄,下面最大的窗口是工作區(qū),現(xiàn)在看到的是硬盤的第一個(gè)扇區(qū)的內(nèi)容,以十六進(jìn)制進(jìn)行顯示,并在右邊顯示相應(yīng)的ASCII碼,右邊是詳細(xì)資源面板,分為五個(gè)部分:狀態(tài)、容量、當(dāng)前位置、窗口情況和剪貼板情況。這些情況對把握整個(gè)硬盤的情況非常有幫助。另外,在其上單擊鼠標(biāo)右鍵,可以將詳細(xì)資源面板與窗口對換位置,或關(guān)閉資源面板。(如果關(guān)閉了資源面板可以通過“察看”菜單——“顯示”命令——“詳細(xì)資源面板”來打開)。 向下拉拉滾動(dòng)條,可以看到一個(gè)灰色的橫杠,每到一個(gè)橫杠為一個(gè)扇區(qū),一個(gè)扇區(qū)共512字節(jié),每兩個(gè)數(shù)字為一個(gè)字節(jié),比如00。 下面我們來分析一下MBR,因?yàn)榍懊嫖覀冋f過,前446個(gè)字節(jié)為引導(dǎo)代碼,對我們來說沒有意義,這里我們只分析分區(qū)表中的64個(gè)字節(jié)。 分區(qū)表64個(gè)字節(jié),一共可以描述4個(gè)分區(qū)表項(xiàng),每一個(gè)分區(qū)表項(xiàng)可以描述一個(gè)主分區(qū)或一個(gè)擴(kuò)展分區(qū)(比如上面的分區(qū)表,第一個(gè)分區(qū)表項(xiàng)描述主分區(qū)C盤,第二個(gè)分區(qū)表項(xiàng)描述擴(kuò)展分區(qū),第三第四個(gè)分區(qū)表項(xiàng)填零未用) 每一個(gè)分區(qū)表項(xiàng)各占16個(gè)字節(jié),各字節(jié)含義如下:(H表示16進(jìn)制)
此硬盤的第一分區(qū)表(即MBR)分析如下: 第一個(gè)分區(qū)表項(xiàng)(C盤) 第1字節(jié)80:表示此分區(qū)為活動(dòng)分區(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ù),這是一個(gè)十六進(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ì)算器來算,單擊工具欄上的“計(jì)算器”按鈕,如下圖: 這樣就啟動(dòng)了計(jì)算器 計(jì)算器有兩種型號,我們要進(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個(gè)扇區(qū),也就是C盤之前已用了的扇區(qū)數(shù)為63,第64個(gè)扇區(qū)就是C盤的第一個(gè)扇區(qū),但要注意的是,整個(gè)硬盤的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。給你出個(gè)題,你知道D盤的EBR在哪個(gè)扇區(qū)嗎?我們一起來算一下,還記得前面數(shù)據(jù)結(jié)構(gòu)那個(gè)表嗎?C盤后面不就是D盤的EBR嗎?D盤EBR的第一個(gè)扇區(qū)=MBR+C盤的大小,也就是 63+1435329=1435392。 然后輸入1435392,再點(diǎn)“確定”,就到了1435392扇區(qū)了(你可以使用它再轉(zhuǎn)回到0扇區(qū)) 這個(gè)就是D盤的EBR,也就是D盤的分區(qū)表了,怎么知道的呢?因?yàn)镸BR和EBR的結(jié)構(gòu)是完全一樣的,都是占用了63個(gè)扇區(qū),但只用了第一個(gè)扇區(qū),其余62個(gè)扇區(qū)填零不用。第一個(gè)扇區(qū)前446個(gè)字節(jié)都為引導(dǎo)代碼,后64個(gè)字節(jié)為分區(qū)表,最后2個(gè)字節(jié)為55AA結(jié)束標(biāo)志。因?yàn)镋BR不是活動(dòng)分區(qū),不需要引導(dǎo)代碼,所以前446個(gè)字節(jié)為零。 還有另一種方法直接找到D盤的EBR,單擊“訪問”下拉按鈕——“分區(qū)二”——“分區(qū)表”,直接就到1435392扇區(qū). 這樣,分區(qū)表中的第一個(gè)分區(qū)表項(xiàng)共十六個(gè)字節(jié)分析完畢,下面我們再來看看第二個(gè)分區(qū)表項(xiàng)(擴(kuò)展分區(qū))。 第13、14、15、16字節(jié)40 09 29 00:本分區(qū)的總扇區(qū)數(shù)。也就是擴(kuò)展分區(qū)的總扇區(qū)數(shù)。轉(zhuǎn)為十進(jìn)制應(yīng)該是2689344。想一想,用這個(gè)數(shù)加上前面的1435392,不正好是整個(gè)硬盤的總扇區(qū)數(shù)4124736嗎? 這樣,如果分區(qū)表被破壞,我們只要把這些數(shù)值都計(jì)算出來并填上,分區(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)一編號,按照從零到某個(gè)最大值排列,這樣只用一個(gè)序數(shù)就確定了一個(gè)唯一的物理扇區(qū)。 還有興趣來分析一下D盤的EBR嗎? 第一個(gè)分區(qū)表項(xiàng)(D盤): 通過以上的研究我們總結(jié)一下,MBR在定義分區(qū)的時(shí)候,將多余的容量定義為擴(kuò)展分區(qū),指定該擴(kuò)展分區(qū)的起止位置,根據(jù)起始位置指向硬盤的某一個(gè)扇區(qū),作為下一個(gè)分區(qū)表項(xiàng),接著在該扇區(qū)繼續(xù)定義分區(qū),如果只有一個(gè)分區(qū),就定義該分區(qū),然后結(jié)束;如果不止一個(gè)分區(qū),就定義一個(gè)基本分區(qū)和一個(gè)擴(kuò)展分區(qū),擴(kuò)展分區(qū)再指向下一個(gè)分區(qū)描述扇區(qū),在該分區(qū)上按照上述原則繼續(xù)定義分區(qū),直至分區(qū)定義結(jié)束。這些用來描述分區(qū)的扇區(qū)形成一個(gè)“分區(qū)鏈”,通過這個(gè)分區(qū)鏈,就可以描述所有的分區(qū)。系統(tǒng)在啟動(dòng)時(shí)按照分區(qū)鏈的連接順序查找分區(qū),直至找出所有分區(qū)。這個(gè)鏈顯然是個(gè)開鏈結(jié)構(gòu),如果形成一個(gè)環(huán),系統(tǒng)本身并不會去判斷它,它只是按照這個(gè)鏈忠實(shí)的查找分區(qū),而不進(jìn)行任何額外的檢測與處理。所謂硬盤邏輯鎖,就是讓分區(qū)鏈形成一個(gè)環(huán),這樣系統(tǒng)在啟動(dòng)時(shí)就在分區(qū)表內(nèi)循環(huán),表現(xiàn)為系統(tǒng)無法引導(dǎo),就是從軟盤啟動(dòng),也不能進(jìn)入硬盤。明白了其結(jié)構(gòu)原理,解決這個(gè)問題就簡單了,目前有很多種方法解決這個(gè)問題,后面我們還會講到。系統(tǒng)就是利用這種方法使一個(gè)硬盤分區(qū)后看起來象多個(gè)硬盤。系統(tǒng)能夠找到C盤以外的其他邏輯盤的唯一辦法就是,沿著EBR所描述的分區(qū)鏈查找分區(qū)。 其實(shí),通常情況下EBR是不會被破壞的,或者破壞的幾率極低極低,通常情況下,都是只有MBR被破壞,那么這種情況下,我們只要把MBR的分區(qū)表64個(gè)字節(jié)復(fù)原,其他的分區(qū)順著分區(qū)表所提供的鏈自然而然就出來了。那么,如何才能將分區(qū)表復(fù)原呢?這就要通過計(jì)算結(jié)合Winhex強(qiáng)大的功能來實(shí)現(xiàn)了。 下面我們就來模仿分區(qū)表被病毒破壞的情況,將MBR全部填零。我們首先將MBR所在的扇區(qū)選中。鼠標(biāo)指向第一個(gè)字節(jié),單擊右鍵,選擇“選塊開始” 然后鼠標(biāo)指向MBR的最后一個(gè)字節(jié),單擊右鍵,選擇“選塊結(jié)尾” 然后我們在選區(qū)內(nèi)部單擊鼠標(biāo)右鍵,選擇“編輯” 這樣就有出來一個(gè)菜單 然后我們選“填充選塊”,這樣就出來一個(gè)填充選塊對話框 在“用十六進(jìn)制填充”的輸入框中輸入“00”,再點(diǎn)“確定” 這樣MBR所在扇區(qū)全部被我們填充為“00” 如果想取消選區(qū),那就用鼠標(biāo)拖動(dòng)隨便選中一塊區(qū)域,那么原來的選區(qū)就會取消。注意,如果扇區(qū)數(shù)據(jù)被修改了而沒有存盤就會變?yōu)閯e的顏色。 修改了扇區(qū),這時(shí)候還沒有存盤生效,如果你想存盤生效的話,就選擇“文件”菜單“保存扇區(qū)”命令。 這時(shí)候就會出現(xiàn)一個(gè)提示,如果你不想存盤了就點(diǎn)取消,如果想存盤,就點(diǎn)確定,再點(diǎn)是。 好,這樣就存盤了,扇區(qū)被修改的數(shù)據(jù)又變?yōu)楹谏?/p> 這樣我們就把分區(qū)表給刪除了,這時(shí)候必須重新啟動(dòng)才能生效,如果你打開我的電腦,會發(fā)現(xiàn)三個(gè)分區(qū)(F 、G、 H)還在那里,并且里面的數(shù)據(jù)還能正常使用。 現(xiàn)在,我們關(guān)閉所有程序?qū)㈦娔X重新啟動(dòng)…… 經(jīng)過不長時(shí)間的等待,電腦啟動(dòng)起來了,我們打開我的電腦看看,發(fā)現(xiàn)F 、G 、H三個(gè)分區(qū)不見了。 再打開Winhex發(fā)現(xiàn)MBR全部為零了,下面我們就著手開始手工恢復(fù)分區(qū)表 首先恢復(fù)引導(dǎo)代碼,這最簡單了,只要用Winhex到別的系統(tǒng)盤把引導(dǎo)代碼復(fù)制過來就行了。我現(xiàn)在的機(jī)器上不是掛著兩個(gè)硬盤嗎?一個(gè)邁拓2G,一個(gè)西數(shù)40G,西數(shù)40G是我的系統(tǒng)盤,那就從這個(gè)盤上復(fù)制就行了。 單擊“磁盤編輯器”按鈕 出現(xiàn)“編輯磁盤”對話框 選擇“HD0 WDC WD400EB---00CPF0”,點(diǎn)“確定” 這樣我們就把系統(tǒng)盤的分區(qū)表給打開了,注意,現(xiàn)在我們是打開了兩個(gè)窗口,當(dāng)前的窗口是“硬盤0”,在標(biāo)題欄上有顯示。另外,打開窗口菜單也能看出來,當(dāng)前窗口被打上一個(gè)勾,如果想切換回原來的窗口,就點(diǎn)擊“硬盤1”。 首先選中系統(tǒng)盤的引導(dǎo)代碼 然后在選區(qū)中單擊鼠標(biāo)右鍵,選“編輯” 又出來一個(gè)菜單,然后我們選“復(fù)制選塊”——“正?!?/p> 然后我們切換回硬盤1窗口,在零扇區(qū)的第一個(gè)字節(jié)處單擊鼠標(biāo)右鍵,選“編輯” 然后選“剪貼板數(shù)據(jù)”——“寫入……” 出現(xiàn)一個(gè)窗口提示,點(diǎn)“確定” 這樣,我們就把一個(gè)正常系統(tǒng)盤上的引導(dǎo)代碼復(fù)制過來了。 下面,我們就開始恢復(fù)分區(qū)表(共64個(gè)字節(jié),分為4個(gè)分區(qū)表項(xiàng),每個(gè)分區(qū)表項(xiàng)占用16個(gè)字節(jié),一般只使用前兩個(gè)分區(qū)表項(xiàng)),我們首先來恢復(fù)第一個(gè)分區(qū)標(biāo)項(xiàng)(也就是用來描述C盤的)。 首先,在第1個(gè)字節(jié)處(0扇區(qū)倒數(shù)第五行,倒數(shù)第二個(gè)字節(jié))填上分區(qū)引導(dǎo)標(biāo)志,因?yàn)镃盤是活動(dòng)分區(qū),所以填上80。 第13、14、15、16字節(jié)是本分區(qū)的總扇區(qū)數(shù),也就是C盤的大小,這就要通過稍微一點(diǎn)點(diǎn)計(jì)算來得到了。因?yàn)镃盤是從第63個(gè)扇區(qū)開始,而C盤后面緊接著的是EBR,所以用EBR所在的第一個(gè)扇區(qū)數(shù)減去63就是C盤的大小。那么如何才能找到EBR所在的第一個(gè)扇區(qū)呢?我們前面說過,EBR的結(jié)構(gòu)和MBR是一樣的,所以,EBR的結(jié)束標(biāo)志也一定是55AA,那么,只要我們找到這個(gè)結(jié)束標(biāo)志,再看看這個(gè)扇區(qū)是不是EBR不就行了? 單擊“搜索”——“查找十六進(jìn)制數(shù)值……”,然后出來一個(gè)對話框 在文本框中輸入“55AA”,搜索框中選“全部”,然后選中“條件”,把偏移量設(shè)置為“512=510”。 再單擊“確定”。畫面如下: 首先找到第一個(gè)“55AA”,我們看到,個(gè)扇區(qū)在第63個(gè)扇區(qū)上,并不是我們要找的EBR,再按F3繼續(xù)查找 又找到好幾個(gè)扇區(qū),都不是,那么下面這個(gè)扇區(qū)是不是? 前面我們說過,EBR的結(jié)構(gòu)和MBR的結(jié)構(gòu)是一樣的,所以在倒數(shù)第五行倒數(shù)第二個(gè)字節(jié)應(yīng)該是00 01,并且前446個(gè)字節(jié)應(yīng)該是0,顯然這也不是EBR,繼續(xù)按F3查找……終于找到了真正的EBR,在1435392扇區(qū)。 小技巧:現(xiàn)在的硬盤都比較大,要逐個(gè)扇區(qū)的查找55AA確實(shí)太慢了,那么有沒有辦法快點(diǎn)呢?有,那就是先問問客戶C盤大概有多大,大多數(shù)客戶還是知道的,比如他說C盤大概有10個(gè)G,那么你就不要從頭開始找了,因?yàn)槟菍?shí)在太慢了。10個(gè)G大概是2000萬個(gè)扇區(qū),那么你可以用轉(zhuǎn)到扇區(qū)命令直接到1900萬扇區(qū),從那個(gè)地方再開始找不就省事多了。 用1435392減去63,得到1435329,再轉(zhuǎn)為16進(jìn)制,就是15E6C1,將他倒轉(zhuǎn)過來就是C1E61500,這就是C盤的大小。這樣,第一個(gè)分區(qū)表項(xiàng)填寫完畢,我們保存一下,再接著填寫第二個(gè)分區(qū)表項(xiàng)。 第二個(gè)分區(qū)表第1個(gè)字節(jié):因?yàn)槭欠腔顒?dòng)分區(qū),所以寫00 第13、14、15、16字節(jié)是本分區(qū)的總扇區(qū)數(shù),也就是擴(kuò)展分區(qū)的總扇區(qū)數(shù),也就是用整個(gè)硬盤的大小減去C盤的大小再減去63,即4124736-1435329-63=2689344,轉(zhuǎn)為十六進(jìn)制就是290940,反過來就是40092900。 這樣,第二個(gè)分區(qū)表項(xiàng)就填寫完了。 不要忘了把最后的結(jié)束標(biāo)志55AA填上,這樣,MBR就全恢復(fù)完了,最后,保存,再重新啟動(dòng)…… 啟動(dòng)完畢,迫不及待的打開我的電腦,發(fā)現(xiàn)三個(gè)分區(qū)全部又回來了,并且里面的數(shù)據(jù)完好無損。 再右擊“我的電腦”,選“管理” 出現(xiàn)一個(gè)對話框,選“磁盤管理”,在右邊可以看到磁盤一的三個(gè)分區(qū)(Fat32、Fat16、Ntfs)全部都回來了,至此,手工恢復(fù)分區(qū)表順利完成。 手工恢復(fù)數(shù)據(jù)恢復(fù)成功率比較高,而且比較有趣味和挑戰(zhàn)性,能找回許多傻瓜似的軟件所找不回來的文件,但是要求工程師一定要有耐性,而且一定要保持清醒,清楚自己正在操作什么,操作完了會有什么后果,能不能退回到上一步狀態(tài)。特別是對一些破壞性操作,一定要考慮周到,只要條件允許,就一定要在操作之前進(jìn)行備份,否則會造成“血”的教訓(xùn),切記?。?! 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ū)和整個(gè)磁盤的剩余扇區(qū)。 先說分區(qū)內(nèi)的扇區(qū):描述磁盤容量的單位是扇區(qū),分區(qū)內(nèi)部又是采用簇來管理的。通常情況下,扇區(qū)的容量是512b,簇的單位容量大于等于扇區(qū)的容量。以具體事例來講,一個(gè) 7gb的fat32分區(qū),其簇的大小是4k,相當(dāng)于8個(gè)扇區(qū),而分區(qū)內(nèi)的存儲單位是4k,分區(qū)的扇區(qū)總數(shù)如果不是8的倍數(shù),那余下來的扇區(qū)便是剩余扇區(qū)了。 整個(gè)磁盤的剩余扇區(qū)與上述原理相似,不同的是,每個(gè)分區(qū)的結(jié)束必須以254頭,63扇為結(jié)束(也應(yīng)該是老的磁盤管理模式留下的弊端吧!雖然分區(qū)內(nèi)是以線性邏輯扇區(qū)為首要參數(shù)的)也就是說,如果磁盤的總?cè)萘空梅植粌粢粋€(gè)柱面的容量(1*254*63*512b=8193024b),那么,剩下的容量便是整個(gè)磁盤的剩余扇區(qū)了,其最大也就是大約7.8m。這也是通常情況下,分區(qū)的最小容量是7.8m,分區(qū)容量是8193024b倍數(shù)的原因。(簡圖并未畫出整個(gè)磁盤的剩余扇區(qū),大家理解吧!) 2、對于fat32的保留扇區(qū)的數(shù)目,一般來說是32個(gè),但也不肯定是,有時(shí)候可能會是38個(gè)或其他數(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)之?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ū),清空兩個(gè)fat表,清空分區(qū)的第一個(gè)簇(存放原根目錄)。不管是快速格式化還是完全格式化(快速格式化和完全格式化的區(qū)別在于他們是否對所涉及到的磁盤扇區(qū)進(jìn)行檢測掃描,清除上面的數(shù)據(jù)事都要做得)。對于dbr,分區(qū)只要正確格式化就會生成正確的dbr,故而重點(diǎn)是fat表和原根目錄(如果原根目錄大于一個(gè)簇,這僅僅是第一個(gè)簇,為了方便,以后就以原根目錄稱)的問題。如果你格式花前備份了此分區(qū)的fat表和根目錄。那么,只要將dbr初始化,恢復(fù)fat表和根目錄即可完全恢復(fù)數(shù)據(jù)。不過,既然是被格式化,那一定沒有fat表和根目錄的備份(廢話?。。。?。繼續(xù): 先說根目錄,跟目錄的第一扇一但清空,別無法找回了。所以,格式化前存儲在根目錄的文件就會因其在第一扇存儲的文件特征描述表丟失而很難找回了,除非你知道文件中包含的特征字符串,根據(jù)其在整個(gè)分區(qū)內(nèi)查找,又確定文件的大小,而恰好要恢復(fù)的文件又是在磁盤內(nèi)連續(xù)存儲的。 再說fat表,fat表的丟失對交叉存儲的文件來說是幾乎毀滅的災(zāi)難。原則上如果丟失,就只能恢復(fù)從文件第一簇開始的連續(xù)幾簇了。但一般如要恢復(fù)的文件較小或分區(qū)并未經(jīng)過頻繁的文件刪增的話, 還是有希望的。 手動(dòng)填寫fat表是不現(xiàn)實(shí)的,我們只好先讓原來的目錄結(jié)構(gòu)重現(xiàn),再想辦法。windows的磁盤文件格式是tree型的,格式化只是將tree的根折,在根折斷以后,其實(shí)就象生成了多顆tree(想想數(shù)據(jù)結(jié)構(gòu))。如果我們要恢復(fù)的文件全部位于一個(gè)子目錄當(dāng)中。那好了,我們只要將這顆子樹的樹根放入原tree 的根位置上,即可生成一顆新樹。推介使用winhex,下面以winhex為例具體而言,首先,若磁盤未格式化或格式化格式不太正確,先格式化,以生成可參照的dbr和fat表。接著我們在分區(qū)中尋找相關(guān)的字符串來確定此子樹的'根'位置。,如記得原目錄中有sjhfnet.txt的文件(選擇其他目錄沒有或很少有此文件名的文件),可在整個(gè)分區(qū)內(nèi)查找'sjhfnet txt',再根據(jù)相關(guān)特征確定。這時(shí)候注意一下,我們需要目錄中提供的'.'目錄來推測原分區(qū)的一些特性,主要是dbr中的bpb參數(shù),如保留扇區(qū)的數(shù)目。(一般是不不會錯(cuò)的,但如果有那怕一個(gè)扇區(qū)的出入,整個(gè)分區(qū)中目錄的映射將不能套用,還是看看吧?。?,是不是要問,'.'目錄是什么?學(xué)過dos的人都知道,目錄'.' 表當(dāng)前所在目錄,'..'表上級目錄,在32個(gè)子節(jié)的目錄項(xiàng)中,包含有和其他目錄項(xiàng)相同的特征,我們關(guān)心目錄的位置(在原分區(qū)格式的第幾個(gè)簇中),他應(yīng)該是等于他所在的簇號的!也就是 看一下偏移量為15h 14h 1bh 1ah的數(shù)值是否等于現(xiàn)在簇號。在winhex中格式化后的磁盤可清楚的列出當(dāng)前簇的簇號,可比較一下(可能需要16進(jìn)制與10進(jìn)制的轉(zhuǎn)換)。 相同不說了,如果不相同,也應(yīng)該相差不多。計(jì)算一下相差的簇的數(shù)目,然后在本分區(qū)dbr扇區(qū)的0eh~0fh作相應(yīng)增減,是保留扇區(qū)的數(shù)目回到原來的數(shù)目。重起一下計(jì)算機(jī),是新的dbr生效,清空現(xiàn)fat表(根目錄簇可以不清空,因后邊講到會覆蓋的)。文件目錄項(xiàng)的映射與實(shí)際地址便正確的結(jié)合了。(不明白嗎?想想原理,努力消化一下) 接著將找到的簇復(fù)制----〉定位到現(xiàn)在的根目錄----〉寫入。 打開“資源管理器“,瀏覽,出來了嗎? 慢!還沒完,現(xiàn)在的目錄結(jié)構(gòu)是出來了,但還不能訪問,因?yàn)閒at表所記錄的簇還是空閑的。怎么辦?手動(dòng)寫,算一下,可能寫完得30年吧!呵呵!哪。。。。,其實(shí),如果要恢復(fù)的文件大小都在1簇范圍內(nèi),可在win98下運(yùn)行磁盤掃描程序,在出現(xiàn)修復(fù)的提示時(shí)選相應(yīng)的選象修復(fù)即可(別選“刪除涉及到的文件”選項(xiàng),另外,win2000下不行,掃描程序會直接刪除文件的)。這樣,大小在1簇范圍的文件別完全恢復(fù)了(包括文件)。那如何在這種情況下恢復(fù)大于1個(gè)簇的文件呢?一是你可以寫一個(gè)小的程序來實(shí)現(xiàn)涉及到的簇的連續(xù)。如果你不會,那么也不難,得一個(gè)一個(gè)文件的來。打開winhex,使用它的目錄模板跳轉(zhuǎn)到文件的存儲區(qū),從當(dāng)前簇復(fù)制大小為文件大小的一塊連續(xù)數(shù)據(jù),寫入新文件中(記得寫在其他分區(qū)中),即可!當(dāng)然,如果簇?cái)?shù)較少,可直接在fat1中改動(dòng)。 另外,這樣恢復(fù)的文件也不一定正確。要看當(dāng)初文件的存儲是否連續(xù)了?如果恢復(fù)后的文件不能用,那。。。。聽天由命吧?。。。ㄒ茨阍诖疟P中在查找,分析,自己把它連接起來。不過,工作量嗎?。。。) 這樣恢復(fù)的是以前一個(gè)子目錄的數(shù)據(jù)。如果有多個(gè)目錄的數(shù)據(jù)要恢復(fù),可用同樣的方法替換根目錄(第一個(gè)數(shù)據(jù)簇),也可以采用手動(dòng)建立根目錄的方法,不過,別在資源管理器中進(jìn)行,手動(dòng)在winhex中做吧!還有,要是恢復(fù)的目錄中有多個(gè)簇,再用同樣的方法,查找,作為根目錄。 這是分區(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é)來找回?cái)?shù)據(jù)(不要笑,有技巧的,況且,也許這是唯一的方法!) 可以通過磁盤文件的存儲特征和文件固有的類型特征來考慮。看過《反黑行動(dòng)之?dāng)?shù)據(jù)恢復(fù)》(風(fēng)般的男人著)應(yīng)該可以知道,文件在磁盤內(nèi)至少是以扇區(qū)為單位的,也就是說,每個(gè)文件在磁盤內(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)的其他文件覆蓋的,可能也能降低工作量吧! |
|