長期以來,計算機領域數(shù)據(jù)恢復似乎缺乏一個把握全貌的說法,如果說給出一個比較能把握全貌的說法,我們首先應當給計算機數(shù)據(jù)一個廣義的概念,某些人覺得只有類似文本文件、數(shù)據(jù)庫中的記錄或表這樣的東西才是數(shù)據(jù),其實從廣義上說,任何位于計算機存儲介質(zhì)上的信息都是數(shù)據(jù),無論是哪種介質(zhì),也無論是具體作用,他們都是數(shù)據(jù)。與這種概念對應,任何使這些信息發(fā)生非主觀意愿之外的變化都可視為破壞。那么數(shù)據(jù)恢復是就是一個把異常數(shù)據(jù)還原為正常數(shù)據(jù)的過程。
一、對數(shù)據(jù)的潛在威脅
1、惡意的程序:大家最熟悉的惡意程序就是病毒,很多人認為病毒對數(shù)據(jù)的影響僅僅是病毒的破壞性,這是不正確的,實際上病毒的感染本身就是一種破壞,一個病毒無論他借助修改你的引導區(qū)、可執(zhí)行程序還是OFFICE文檔,他都把你正常的數(shù)據(jù)做了改變,當然,你可能舉良性伴隨性病毒這種極端的例子。但毫無疑問,他同樣對數(shù)據(jù)構成了破壞,至少他減少了你的硬盤的可用空間。同時,惡意的程序還包括特洛伊木馬,邏輯炸彈等等。惡意的程序造成的破壞可能是最難恢復的。
2、其他惡意的破壞,即使不借助病毒或者其他的工具,只要擁有足夠的權限,任何系統(tǒng)都有一定的“自毀”能力。比如依靠系統(tǒng)正常的刪除、移動、格式化等操作也可以達到破壞數(shù)據(jù)的目的。隨著網(wǎng)絡技術的發(fā)展,威脅已經(jīng)不僅僅限于本機,
3、誤操作:很多數(shù)據(jù)丟失源于使用者的操作失誤,比如誤刪除,誤格式化等等。
4、操作系統(tǒng)或應用軟件的錯誤:隨著操作系統(tǒng)和應用程序的代碼量的成倍增加,BUG也在不斷增加。我們最常用的桌面系統(tǒng)WIN9X就是一個BUG大王。操作系統(tǒng)和應用軟件的錯誤,往往會給人的工作帶來一些不可預期的影響。比如前階段,發(fā)現(xiàn)FRONTPAGE98的一個BUG,觸發(fā)后會把你目錄下的文件全部刪除,另外,象著名的游戲神話II,出現(xiàn)了如不安裝在默認目錄中可能會使你丟失擴展分區(qū)這樣嚴重的問題。
5、加密和權限:盡管加密和權限設置是你保護數(shù)據(jù)的有效手段,但遺忘密碼也會帶來很大的問題。
6、掉電:機器突然掉電的后果可能不僅僅是內(nèi)存數(shù)據(jù)的丟失,也可能造成磁盤數(shù)據(jù)的丟失,或導致系統(tǒng)無法正常啟動。
7、內(nèi)存溢出:導致內(nèi)存溢出或者進程非法終止等低層錯誤的原因很多,他就象掉電一樣,會使你損失當前的工作。
8、升級:軟件系統(tǒng)升級有時會帶來一些問題,后面我們將舉相應例子。
9、硬件損壞和失竊:這可能是最嚴重的威脅之一。有時這把你恢復數(shù)據(jù)的可能降低為零。
二、數(shù)據(jù)丟失的各種邏輯現(xiàn)象
對數(shù)據(jù)的恢復,基本上是一種邏輯處理。只有對情況有一個準確的判定,才能做出準確的應對。一般的來說,問題可以歸納為以下幾種情況。
1、 硬盤無法完成正確引導:因物理故障造成的邏輯損壞、引導區(qū)故障、重要扇區(qū)崩潰等等,都會使系統(tǒng)不能完成正常的自舉過程。
2、 文件丟失:由于有意破壞,誤刪除等等都會造成數(shù)據(jù)的丟失。另外,這種歸類不僅僅包括某個或某幾個文件,也適用于目錄,分區(qū)或卷的丟失。
3、 文件無法正常打開:由于病毒感染,加密,文件頭損壞等情況,會使文件無法正常打開。
4、 數(shù)據(jù)紊亂:由于各種因素的影響,數(shù)據(jù)庫中的信息,文本文件等,可能面目全非。
三、保護數(shù)據(jù)的建議
這個專題是探討數(shù)據(jù)恢復的,而不是信息保護的,因此點到為止,一句話,那就是防患于未然,我們列舉了對數(shù)據(jù)的威脅,如果我們最大程度的減弱了這些威脅,對每一種可預知的潛在威脅都有相應的預防和對策,我們的數(shù)據(jù)安全才會有最大的保障。這些對策主要包括選擇良好的反病毒和系統(tǒng)維護產(chǎn)品、加強保安全措施、采用UPS掉電保護、提高用戶操作水平和安全意識、形成系統(tǒng)的信息管理和備份制度等等。都可以有效的保證數(shù)據(jù)的安全,總之,我對數(shù)據(jù)恢復的認識與病毒是相同的——與其亡羊補牢,不如防患未然。
第二篇、數(shù)據(jù)恢復的準備知識
1、系統(tǒng)工作機理的簡單介紹(本節(jié)由lowpower縮寫)這一部分在原作中是最重要的一章,考慮到篇幅關系,進行了大量的刪節(jié)。
①、 DOS(DOS兼容系統(tǒng))硬盤數(shù)據(jù)的構成
DOS磁盤系統(tǒng),可以按照邏輯分區(qū)的概念管理物理空間,不同分區(qū)可以裝載不同的OS系統(tǒng)。示意如下:
硬盤空間
第一扇區(qū) | 分區(qū)1 | 分區(qū)2| 分區(qū)3 |分區(qū)4 |
主引導扇區(qū)|引導扇區(qū)|引導扇區(qū)|引導扇區(qū)|引導扇區(qū)|
各分區(qū)公用|各個分區(qū)相對獨立,可安裝不同操作系統(tǒng)。
對FAT結構的分區(qū)每一分區(qū)都有獨立的引導記錄,F(xiàn)DT表,F(xiàn)AT表等。同時,系統(tǒng)還有一個最為重要的主引導記錄。在0柱0面1扇區(qū),今后我們用CYL代表柱、SIDE代表面,SEC代表扇區(qū)。以下一個FAT結構分區(qū)的簡圖。
保留區(qū)--磁盤參數(shù)表、DOS引導記錄
控制區(qū)--FAT表1、FAT表2根目錄區(qū)
數(shù)據(jù)區(qū)--數(shù)據(jù)區(qū)
以下簡單介紹一下重要的部分:
主引導記錄又稱主分區(qū)表、MBR等等:MBR占一個扇區(qū),在CYL 0、SIDE 0 、SEC 1,由代碼區(qū)和數(shù)據(jù)區(qū)構成。其中代碼區(qū)是一端標準的程序,完成 BIOS自舉到OS BOOT之間的工作,為OS啟動做最后的準備。標準代碼區(qū)可以由FDISK/MBR重建,但對于多系統(tǒng)引導的不標準MBR,將被這一操作破壞。MBR的數(shù)據(jù)區(qū)記錄了分區(qū)情況。
系統(tǒng)扇區(qū):CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62個扇區(qū)引導區(qū)又稱BOOT區(qū):CYL 0、SIDE 1 、SEC 1 這是我們過去稱的DOS引導區(qū)。也占一個扇區(qū)。
文件分配表又稱FAT:是記錄文件占用簇的情況和連接關系的地方。一般有兩個FAT表,起到備份的作用。FAT12、FAT16的第一FAT表一般均在0-1-2,F(xiàn)AT32的第一FAT表在0-1-33。由于FAT表記錄文件占用扇區(qū)連接的地方,如果兩個FAT表都壞了,后果不堪設想。
由于FAT表的長度與當前分區(qū)的大小有關所以FAT2的地址是需要計算的。
根目錄區(qū)(ROOT、FDT):這里記錄了根目錄里的目錄文件項等,ROOT區(qū)跟在FAT2后面。
數(shù)據(jù)區(qū):跟在ROOT區(qū)后面,這才是數(shù)據(jù)內(nèi)容。
其實, MBR、隱含扇區(qū)、BOOT區(qū),重建都比較容易。數(shù)據(jù)恢復的關鍵在于恢復數(shù)據(jù)文件。由于FAT表記錄了文件在硬盤上占用扇區(qū)的鏈表,如果2個FAT表都完全損壞了。那么恢復文件,特別是占用多個不連續(xù)扇區(qū)文件就相當困難了。
?、?、 主引導記錄簡單說明:
主引導記錄是硬盤引導的起點,關于代碼區(qū)不多說了,其數(shù)據(jù)區(qū),比較重要的是2個標志,80H和55AA,80H一般在偏移1BE處,80是分區(qū)激活的標志的標記表示系統(tǒng)可引導,且整個分區(qū)表只能有一個80標記。另一個就是結尾的55AA標記,用來表示主引導記錄是一個有效的記錄。另外,各個分區(qū)自身的引導記錄,也是以55AA結束,這是我們查找分區(qū)的標志。我們后面在介紹如何主引導記錄中,給出了一個完整的分區(qū)表的例子,大家可對照查看。數(shù)據(jù)區(qū)中,用10H字節(jié)表示一個分區(qū),最多可表示4個分區(qū),分別從1BE、1CE、1DE、1EE開始,我們后面給出了分區(qū)表項對應地址的含義。大家可以對應分析一下以下分區(qū)的情況。
80 01 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00
?、?② ③ ④ ⑤ ⑥
?、伲杭せ顦擞?,80表示可引導分區(qū)
?、冢悍謪^(qū)開始的磁頭號為01、開始的扇區(qū)號為01、開始的柱面號為00,由于開始的扇區(qū)號為2進制6位,而開始的柱面號為2進制10位,因此扇區(qū)號所用字節(jié)的高兩位要加在柱面號高兩位。
?、郏悍謪^(qū)的系統(tǒng)類型FAT32(0B),01是FAT12,04為FAT16,06為BIGDOS,07為NTFS,其他參見分區(qū)類型表。
?、埽悍謪^(qū)結束磁頭號254、分區(qū)結束扇區(qū)號63、分區(qū)結束柱面號764
?、荩菏咨葏^(qū)的相對扇區(qū)號63
⑥:總扇區(qū)數(shù)12289622
2、常見手工處理工具與DOS外部命令介紹
DEBUG:古老和最為常見的調(diào)試跟蹤軟件,始終捆綁在微軟的DOS/WIN9X操作系統(tǒng)中。有19個子命令。有編寫執(zhí)行匯編指令,直接讀寫絕對扇區(qū)和內(nèi)存單元等功能,可以在最艱苦的條件下工作。DOS6.22以下的系統(tǒng),DEBUG.EXE在DOS目錄下,WIN9X系統(tǒng)中它在WINDOWS\COMMAND目錄下,它也出現(xiàn)在WIN9X所生成的應急盤中。
DISKEDIT:常見16進制編輯軟件,字符界面,可以以文件方式和扇區(qū)方式讀寫邏輯內(nèi)容,可以讀寫絕對扇區(qū),可以方便的查找編輯分區(qū)表、FAT表、ROOT區(qū)等重要扇區(qū)。這一點要比DEBUG更方便。但在一些重要扇區(qū)損壞的情況下,DISKEDIT可能無法啟動。DISKEDIT軟件可以在著名的Norton Utilities軟件包中找到。最新的DISKEDIT出現(xiàn)在NU4中。
NDD:常見的FAT文件結構磁盤修復工具,就是著名的NORTON磁盤醫(yī)生,可以自動修復分區(qū)丟失等情況,可以搶救軟盤壞區(qū)中的數(shù)據(jù),強制讀出后搬移到其他空白扇區(qū)。希望大家不要再使用NORTON FOR DOS7或8的NDD,這個版本由于不支持大分區(qū)、FAT32、長文件名等技術,會給你帶來大量的麻煩。建議大家使用Norton Utilities4或更高版本中的NDD.EXE,這是純DOS下的工具。在硬盤崩潰或異常的情況下,他可能可以帶給用戶以希望。WIN9X下的磁盤醫(yī)生調(diào)用的并不是這個程序,而是NDD32.EXE.
FDISK:FDISK當然是個危險的命令,很多人非??謶?,事實上,F(xiàn)DISK命令的運行并不影響任何分區(qū)內(nèi)的硬盤數(shù)據(jù),他對分區(qū)的設置操作,只改變主分區(qū)表的數(shù)據(jù)區(qū)。而特別是FDISK異常重要的隱含參數(shù)/MBR,可以重建主分區(qū)表的代碼區(qū),清除主引導型病毒等。這是非常有用的操作。DOS6.22以下的系統(tǒng),F(xiàn)DISK.EXE在DOS目錄下,WIN9X系統(tǒng)中它在WINDOWS\COMMAND目錄下,它也出現(xiàn)在WIN9X所生成的應急盤中。
FORMAT:在一些人眼中,F(xiàn)ORMAT是最可怕的命令,但他并不是對硬盤清零,特別值得注意的是,很多文件恢復工具都建議你恢復前先FORMAT該分區(qū)起到保護的餓作用。DOS6.22以下的系統(tǒng),F(xiàn)ORMAT.COM在DOS目錄下,WIN9X系統(tǒng)中它在WINDOWS\COMMAND目錄下,它也出現(xiàn)在WIN9X所生成的應急盤中。
HD-COPY:傳統(tǒng)的軟盤COPY工具,2.0版本以后加入了強制讀的功能,可以讀出一些損壞扇區(qū)的內(nèi)容。
SYS:SYS命令是重建BOOT區(qū)的最簡潔的手段,也可以殺除BOOT區(qū)病毒。DOS6.22以下的系統(tǒng),sys.COM在DOS目錄下,WIN9X系統(tǒng)中它在WINDOWS\COMMAND目錄下,它也出現(xiàn)在WIN9X所生成的應急盤中。
令我非常遺憾的是,至今我沒有發(fā)現(xiàn)比較出色的扇區(qū)級備份鏡象工具,我曾寫過一個HD-MIRROR,但由于錯誤較多,我提供下載的第二天就停止了發(fā)布,另外fixc的作者noz寫過一個clone.exe,但可惜只適合相同的硬盤。我也曾以為GHOST可以做到這點,事實上,你目前還不能指望他為你備份一塊深度破損的硬盤。。如果有一個有效的能以按扇區(qū)機制(而不是文件機制)壓縮備份一塊硬盤將之做成一個鏡象文件的話,那么我們的恢復工作就擁有了更多的保證和余地。我們可以更大膽的做恢復的嘗試。
3、一些自動處理工具或軟件包
首先介紹國內(nèi)的一些免費修復工具
FIXMBR:何公道先生寫的一個修復MBR的工具,適合處理邏輯分區(qū)丟失的情況, 有一些可選參數(shù),支持FAT32、FAT16,不支持NTFS、LINUX等分區(qū),支持8.4G以上硬盤。可修復CIH發(fā)作后的擴展邏輯分區(qū)。
VRVFIX:北信源公司的推出的修復硬盤共享工具,適合處理邏輯分區(qū)丟失的情況,處理的基本比較準確。支持FAT32、FAT16,不支持NTFS、LINUX等分區(qū)。也不支持8.4G以上硬盤。
FIXC:國內(nèi)最早出現(xiàn)的可以修復部分被CIH破壞的C盤的工具,作者是NOZ,新版本也加入了修復分區(qū)信息的功能,支持FAT32、FAT16,有限支持NTFS,不支持8.4G以上硬盤。目前的版本已經(jīng)比較完善。
FIXHDPT:TBSOFT工作室的分區(qū)信息修復工具。支持FAT32、FAT16,不支持NTFS和LINUX,不支持8.4G以上硬盤,是歷史比較長的工具之一。
RE(ReapirEasy):本人早期寫的分區(qū)表修復工具,支持FAT32、FAT16,有限支持NTFS,不支持8.4G 以上硬盤,和某些BIOS不兼容。其整體水準低于前面列舉的工具。國外一些系統(tǒng)維護的工具目前已經(jīng)達到了非常強大的程度。
Norton Utilities:歷史最悠久的系統(tǒng)維護工具。不僅可以數(shù)據(jù)恢復,還可以系統(tǒng)加速和修補內(nèi)存錯誤。目前最新的版本是NU4.5 FOR 9X、NU2 FOR NT等。
Tiramint:最為出色的災難恢復工具之一,有NTFS、FAT32、FAT16、NOVELL4種版本。生成急救軟盤,可以對深度破壞的磁盤進行交叉恢復。
4、常用的基本操作
?、?讀出主引導記錄:這是系統(tǒng)級數(shù)據(jù)恢復可能涉及最多的程序之一。例:
DEBUG
-a100 ;從此處開始匯編
126C:0100 mov ax,201; 讀操作一個扇區(qū)
126C:0103 mov bx,300; 送入地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H為硬盤,頭為0
126C:010C int 13
126C:010E int 3
126C:010F
-g=100 ;
執(zhí)行
AX=0050 BX=0300 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=010E NV UP EI PL NZ NA PO NC
這里用了I/O中斷13,涉及的寄存器含義為ah,操作方式,02H為讀,03H為寫,al送扇區(qū)數(shù),bx送準備裝入扇區(qū)的內(nèi)存偏移地址,cx送從哪一道哪一扇區(qū)開始,我們一般依靠改換CX來讀寫不同邏輯盤某個邏輯扇區(qū)。dx送盤符和頭數(shù)INT 3是斷點中斷,使程序運行到此停止。
?、?顯示引導區(qū)內(nèi)容:我們把扇區(qū)讀到某個內(nèi)存地址并不是目的。而是為了看到他的內(nèi)容,在DEBUG中D命令可以方便的查看內(nèi)存單元的內(nèi)容。續(xù)前例,如果我們要看到主引導區(qū)的內(nèi)容的話,既然裝載到300。-d300 l200就可以查看了,一個引導區(qū)的映象類似如下,可以直觀的看 到我們前面所提到的代碼區(qū)和數(shù)據(jù)區(qū)。是否正常請大家自行分析一下
126C:0300 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....|
126C:0310 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW...........
126C:0320 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u...........
126C:0330 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.8,t....N.
126C:0340 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 <.t...........F%
126C:0350 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t.
126C:0360 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP.
126C:0370 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...U.u....t
126C:0380 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f..
126C:0390 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N
126C:03A0 25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55 %.N...r).F..>.}U
126C:03B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB .tZ.......u..'..
126C:03C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z.
126C:03D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00 .Ot.3...........
126C:03E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 V3.VVRP.SQ...V..
126C:03F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72 PR..B.V$..ZX.d.r
126C:0400 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49 .@u.B......^..tI
126C:0410 6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E nvalid partition
126C:0420 20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61 table.Error loa
126C:0430 64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 ding operating s
126C:0440 79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70 ystem.Missing op
126C:0450 65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00 erating system..
126C:0460 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0470 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0480 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W.........
126C:0490 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 ................
126C:04C0 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00 ......?...~.....
126C:04D0 81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00 ............u...
126C:04E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
?、?反匯編主引導區(qū)內(nèi)容:判定MBR的代碼區(qū)是否正常,對于數(shù)據(jù)區(qū)的基本情況,我們可以通過直觀觀察得出,但對于存在引導型病毒,或者引導區(qū)出現(xiàn)異常代碼的情況,我們可能需要分析MBR中代碼區(qū)的指令。這一般要對已經(jīng)讀入內(nèi)存的引導區(qū)進行反匯編。反匯編用指令U,續(xù)前例:
-u300 l15D ;反匯編主引導扇區(qū)代碼區(qū)內(nèi)容
126C:0300 33C0 XOR AX,AX
126C:0302 8ED0 MOV SS,AX
…………
126C:045C 65 DB 65
126C:045D 6D DB 6D
?、?寫內(nèi)存單元,在我們的前例中,主分區(qū)類型是0B是FAT32的,假定這個類型實際是NTFS的,我們該如何修改呢?由于主分區(qū)類型的偏移是4C3H,我們可以用E命令寫到內(nèi)存單元中,從附表中查得NTFS的類型為07。因此-e4c3 7再比如說,假定我們想把無效的分區(qū)表清零,那么,我們應當用另一個命令F,這個命令可以用填充一個內(nèi)存地址范圍。清零分區(qū)表的操作就是-f4be 4ff 00,以下兩個操作也比較常見。
重置80標記,-e4be 80
重置55AA標記,-f4ff 4fe 55 aa
不要忘記了,此時僅僅是改動了內(nèi)存中的數(shù)據(jù),并未寫到硬盤上。因此需要用int 13中斷把改寫的結果,寫回硬盤。續(xù)前例,
-a100
126C:0100 mov ax,301 ; 寫操作一個扇區(qū)
-g=100 ;執(zhí)行
其實,我們相當于修改了剛才輸入的讀主引導扇區(qū)程序,使程序變?yōu)椤?br />
126C:0100 mov ax,301 ; 寫操作一個扇區(qū)
126C:0103 mov bx,300 ;從內(nèi)存地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H為硬盤,頭為0
126C:010C int 13
126C:010E int 3 ;斷點
?、?絕對磁盤內(nèi)容的讀出與寫入
類似操作在FAT32結構硬盤被CIH破壞的修復中比較常見,我們后面將講到恢復的基本思路就是用第二FAT表覆蓋第一FAT表。那么無疑要讀出第二FAT表的內(nèi)容,再回寫到第一FAT表的位置上。一般的來說,大量連續(xù)扇區(qū)的讀出寫入DISKEDIT進行非常方便,如果用DEBUG做則要寫一段子程序,不過程序的主要技巧就是利用int 25絕對磁盤讀中斷讀出的內(nèi)容,而用int 26絕對磁盤寫做內(nèi)容寫入。
5、數(shù)據(jù)可恢復的前提
有人覺得這個題目說法比較奇特,但數(shù)據(jù)恢復,作為一個數(shù)據(jù)再現(xiàn)的過程,一定要解決兩個問題,第一是從哪里恢復的問題,第二是怎么恢復的問題。解決了這兩個問題,我們事實上就把握了數(shù)據(jù)恢復的全部思想脈絡。而這一部分就是從哪里恢復的問題。
?、佟?有效而及時的備份中是數(shù)據(jù)恢復最可靠的來源,在許多人倡導備份到秒的今天,恐怕不會有人懷疑這點。而有些備份機制則是系統(tǒng)內(nèi)建的,比如兩份FAT表。
?、?、 數(shù)據(jù)的實際有效性的判定是關鍵,對我們來說,硬盤無法自舉、文件找不到、文件打不開等現(xiàn)象,其實并不與數(shù)據(jù)丟失畫等號。因為此時往往數(shù)據(jù)只是從操作系統(tǒng)的角度是一種邏輯丟失,而從物理扇區(qū)意義上,它仍然存在或部分存在。最明顯的就是文件刪除的例子,事實上,這只是把文件首字節(jié),改為0E而已。而此時文件體依然存在。
③、 數(shù)據(jù)損壞過程的可逆性分析:對數(shù)據(jù)的改變無非兩種,取代和變換,前者是不可逆的,而后者則是可逆的。我們以殺毒為例,對于大多文件性病毒來說,那些以附加而非代換方式感染的文件型病毒,理想的殺毒過程就是感染的逆過程。這種分析也常見與重要信息被隱藏搬移或者被加密的情況,但分析將比較復雜。
?、?、 數(shù)據(jù)本身是否是標準信息:有些信息實際是通用或局部通用的,你無須考慮如何從本機搶救。只要相同或相近的系統(tǒng)版本就可以了,比如BOOT區(qū)、隱含扇區(qū)、WINDOWS的DLL文件等等。典型的例子如分區(qū)表的代碼區(qū),這是一段標準代碼,事實上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出來。
⑤、 數(shù)據(jù)本身是否可以由其他信息統(tǒng)計再生:有些信息盡管丟失了,也沒有備份。但它實際可以從其他數(shù)據(jù)中間接求得。最典型的就是主分區(qū)表中的分區(qū)信息,即使你把他清零也不必害怕,因為你可以從你幾個分區(qū)中計算再生。
?、?、 破壞的完成程度:事實上,F(xiàn)DISK、FORMAT都不會徹底破壞數(shù)據(jù),一般只有低格和扇區(qū)覆蓋操作才會徹底破壞數(shù)據(jù)。但有時,破壞過程或者誤操作過程會因人工終止、死機等原因不能完成。最明顯的就是CIH病毒的例子,由于CIH是以1024字節(jié)為單位覆蓋扇區(qū),這當然是不可逆過程,于是我們最初都認為,破壞是很難恢復的,除非人工終止。事實上,當病毒覆蓋某些扇區(qū)時會與9X系統(tǒng)發(fā)生沖突,從而造成死機,使數(shù)據(jù)得到了保護。
第三章、數(shù)據(jù)恢復基本攻略
1、 硬件或介質(zhì)問題的情況
?、?、硬盤壞:硬盤自檢不到的情況一般是硬件故障,又可分為主版的硬盤控制器(包括IDE口)故障和硬盤本身的故障。如果問題在主板上,那么數(shù)據(jù)應當沒有影響。如果出在硬盤上,也不是一定不能修復。硬盤可能的故障又可能在控制電路、電機和磁頭以及盤片。如果是控制電路的問題,一般修好它,就可以讀出數(shù)據(jù)。但如果電機、磁頭和盤片故障,即使修理也要返回原廠,數(shù)據(jù)恢復基本沒有可操作性。
?、?、軟盤壞:當軟盤數(shù)據(jù)損壞時,可以有幾種處理,一種是用NDD修復,他會強制讀出你壞區(qū)中的東西,MOVE到空白扇區(qū)中,這就意味著如果你的磁盤很滿操作是沒法進行的。你也可以用HDCOPY2.0以上版本READ軟盤,他也會進行強讀,使讀入緩沖區(qū)的數(shù)據(jù)是完好的,你再寫入一張好磁盤就可以了。當然這些方式,要看盤壞的程度。如果0磁道壞,數(shù)據(jù)也并非無法搶救,早先可以通過扇區(qū)讀的方式,把后面的數(shù)據(jù)讀出,不過一般來說,你依然可以HDCOPY來實驗。
2、系統(tǒng)問題的情況
?、?、在硬盤崩潰的情況下,我們經(jīng)常要和一些提示信息打交道。我們要了解他典型提示信息的含義,注意這些原因僅僅分析邏輯損壞而不是硬盤物理壞道的情況。
提示信息
可能原因
參考處理
Invalid Partition Table
分區(qū)信息中1BE、1CE、1DE處不符合只有一個80而其他兩處為0
用工具設定,操作在前面已經(jīng)講了。
Error Loading Operating System
主引導程序讀BOOT區(qū)5次沒成功。
重建BOOT區(qū)
Missing Operating System
DOS 引導區(qū)的55AA標記丟失
用工具設定,把前面讀寫主引導區(qū)程序的DX=80改為180即可
Non-System Disk or Disk Error
BOOT區(qū)中的系統(tǒng)文件名與根目錄中的前兩個文件不同
SYS命令重新傳遞系統(tǒng),
Disk Boot Failure
讀系統(tǒng)文件錯誤
SYS命令重新傳遞系統(tǒng),
Invalid Driver Specifcationg
如果試圖切換到一個確實存在的邏輯分區(qū)出現(xiàn)以下信息,說明主分區(qū)表的分區(qū)記錄被破壞了。
根據(jù)各分區(qū)情況重建分區(qū)表,或者用自動修復工具修復。注意分區(qū)丟失是最常見的故障之一,此時不要緊張,一般的說此時數(shù)據(jù)并沒有問題,如果你不了解處理的方法。你可以選擇我前面介紹的自動修復分區(qū)工具進行處理,他們大多只改寫主分區(qū)表的數(shù)據(jù)區(qū),不會影響你的其他數(shù)據(jù)。特別提醒大家,這些工具有的不支持8.4G硬盤,有的與BIOS對硬盤的識別有關系。如果你在一臺機器上不行,可以換臺BIOS不同的機器實驗一下。
Bad or missing command interpreter
這是說找不到COMMAND.com,或者COMMAND文件壞了。
如果你COPY過去COMMAND文件還是如此,一般來說是感染了某種病毒。
Invalid media type reading drive
X ,Abort,Retry,Fail?
該盤沒有高級格式化,或BOOT區(qū)中I/O參數(shù)表被破壞。
這里情況較多,手工處理比較復雜,特別指出,此時DISKEDIT可能無法運行,建議用工具修復。
Incorrect DOS Version
可能是文件版本不統(tǒng)一,對9X來說,有95,95osr/2,98,98 oem/2等版本,重新SYS時,不要弄錯了。
用正確版本的啟動盤重新SYS系統(tǒng)。
另外說明一下,對于比較老的機器還有1071和not found rom basic、ROM BASIC OK等提示,在目前機器中以消失。另外,當代碼區(qū)完全被破壞的情況下,系統(tǒng)關于無系統(tǒng)的提示是來自BIOS的,這條提示與BIOS的種類有關。另外,F(xiàn)DISK/MBR對代碼區(qū)的重建是我們經(jīng)常采用的。再介紹一種比較極端的情況,就是硬盤自檢正常,而用軟盤和硬盤都無法正常啟動的情況,這可能是,病毒或惡意程序利用,DOS3以上版本啟動中都要檢索分區(qū)表這一特點,把分區(qū)表置為死循環(huán)。造成啟動中死機。網(wǎng)上曾經(jīng)流傳過DOS6.22k修改方案,其實是修改西文MS-DOS6.22的 IO.SYS,把C2 03 06 E8 0A 00 07 72 03替換為:C2 03 90 E8 0A 00 72 80 90就可以啟動被類似情況鎖住的硬盤。
?、?、WIN9X無法正常進入或工作:以下僅僅是對可能的軟故障分析,沒有考慮硬件故障.
進入圖形界面前死機情況比較復雜,可能與加載的某些驅動有關可以在START MS WINDOWS時,用F8激活菜單,設置為step by step,看是哪項使系統(tǒng)死機。而后從CONFIG或者SYSTEM。INI中刪除
進入圖形界面后死機: 一般這與開機加載的程序有關進入安全模式(此時自動運行的程序將不能加載),對注冊表中的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run*中的鍵值和啟動組中加載的程序進行分析。必要的予以刪除。
顯示IEXPLORE.EXE錯誤,不能進行任何操作可能有某個系統(tǒng)的動態(tài)連接庫損壞覆蓋安裝WIN9X,或從其他機器上COPY損壞的連接庫。(確定哪個庫損壞一般比較困難)
頻繁出現(xiàn)出錯各種信息:一般是虛擬內(nèi)存不足造成的看C盤是否剩余空間過少,或者打開的應用程序和窗口太多。
2、全盤崩潰和分區(qū)丟失
首先重建MBR代碼區(qū),再根據(jù)情況修正分區(qū)表。修正分區(qū)表的基本思路是查找以55AA為結束的扇區(qū),再根據(jù)扇區(qū)結構和后面是否有FAT等情況判定是否為分區(qū)表,最后計算填回,主分區(qū)表,由于需要計算,過程比較煩瑣,就不仔細介紹了,希望大家用前面介紹的工具,比如NDD處理。如果文件仍然無法讀取,要考慮用TIRAMINT等工具進行修復。如果在FAT表徹底崩潰的情況下,恢復某個指定文件,可以用DISKEDIT或DEBUG查找已知信息。比如文件為文本,文件中包含“軟件狗”,那么我我們就要把他們轉換為內(nèi)碼C8 ED BC FE B9 B7進行查找。
3、文件丟失、誤格式化的情況
一般的來說,文件刪除僅僅是把文件的首字節(jié),改為E5H,而并不破壞本身,因此可以恢復。但由于對不連續(xù)文件要恢復文件鏈,由于手工交叉恢復對一般計算機用戶來說并不容易,在這篇縮略版中就不講了,建議用工具處理,如果已經(jīng)安裝了Norton Utilities,可以用他來查找。另外,RECOVERNT 等工具,都是恢復的利器。特別注意的是,千萬不要在發(fā)現(xiàn)文件丟失后,在本機安裝什么恢復工具,你可能恰恰把文件覆蓋掉了。特別是你的文件在C盤的情況下,如果你發(fā)現(xiàn)主要文件被你失手清掉了
,(比如你按SHIFT刪除),你應該馬上直接關閉電源,用軟盤啟動進行恢復或把硬盤串接到其他有恢復工具的機器處理。誤格式化的情況可以用工具處理。
4、文件損壞的情況
一般的說,恢復文件損壞需要清楚的了解文件的結構,并不是很容易的事情,而這方面的工具也不多。不過一般的說,文件如果字節(jié)正常,不能正常打開往往是文件頭損壞。就文件恢復舉幾個簡單例子。
類型
特征
處理
ZIP、TGZ等壓縮包無法解壓
ZIP文件損壞的情況下可以用一個名為ZIPFIX的工具處理。不過如果你的文件是從FTP站點上下載的,那么有可能是你沒有定義下載模式為BIN。
自解壓文件無法解壓
可能是可執(zhí)行文件頭損壞,可以用對應壓縮工具按一般壓縮文件解壓。
DBF文件死機后無法打開
典型的文件頭中的記錄數(shù)與實際不匹配了,把文件頭中的記錄數(shù)向下調(diào)整,遺憾的是公式我找不到了。
5、硬盤被加密或變換
此時千萬不要FDISK/MBR,SYS等處理,否則可能數(shù)據(jù)再也無法找回,一定要反解加密算法,或找到被移走的重要扇區(qū)。對于那些加密硬盤數(shù)據(jù)的病毒,清除時一定要選擇能恢復加密數(shù)據(jù)的可靠殺毒軟件。
6、文件加密后密碼遺忘
對于很多字處理軟件的文件加密和ZIP等壓縮包的加密,你是不能靠加密逆過程來完成的,因為那從理論上是異常困難的。目前有一些相關的軟件,他們的思想一般都是用一個大字典集中的數(shù)據(jù)循環(huán)用相同算法加密后與密碼的密文匹配,直到一致時則說明找到了密碼。你可以去尋找這些軟件,當然,有些軟件是有后門的,比如DOS下的WPS,Ctrl+qiubojun就是通用密碼。Undiskp的作者馮志宏是解文件密碼的個中高手,大家不妨去他的主頁看看。
7、系統(tǒng)用戶密碼遺忘的處理:最簡單的方法就是用軟盤啟動(NT的你也可以把盤掛接在其他NT上),找到支持該文件系統(tǒng)結構的軟件(比如針對NT的NTFSDOS),利用他把密碼文件清掉、或者是COPY出密碼檔案,用破解軟件套字典來處理。前者時間短但所有用戶信息丟失,后者時間長,但保全了所有用戶信息。對UNIX系統(tǒng),我建議你一定先做一張應急盤。
上一篇:安卓手機鏡像方法