趙靜
(陜西財經(jīng)職業(yè)技術(shù)學(xué)院 陜西 咸陽 712000)
隨著現(xiàn)代計算機(jī)技術(shù)、通信技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計算機(jī)成為當(dāng)前人們工作和生活的必備的工具,也在人們的生活中扮演者越來越重要的角色。在人們?nèi)粘J褂糜嬎銠C(jī)的過程中,隨著時間的積累,數(shù)據(jù)成為人們的重要的保存對象。但在人們對數(shù)據(jù)的使用和存儲中,數(shù)據(jù)誤刪、電腦誤操作等造成的給用戶帶來的數(shù)據(jù)丟失成為常見的問題。針對這些因各方面的原因所導(dǎo)致的數(shù)據(jù)丟失,如何對數(shù)據(jù)進(jìn)行恢復(fù),從而最大程度的降低用戶的損失,成為當(dāng)前研究的重要問題。根據(jù)一份來自Net-Market-Share所調(diào)查的數(shù)據(jù)顯示,PC端Windows系統(tǒng)使用FAT32文件系統(tǒng)用戶在60%,由此可以看出對基于FAT32數(shù)據(jù)恢復(fù)研究的實踐價值。
FAT32文件系統(tǒng)作為微軟公司其早期的版本就開始使用的一種系統(tǒng),其主要是支持那些空間大于的,同時小于的硬盤分區(qū)。FAT32的格式分區(qū)從整體的角度來看,是由其中的MBR、DBR 以及所謂的保留扇區(qū)、FAT1、FAT2、DATA 等 5 個不同的部分組成。在該組成結(jié)構(gòu)之中,MBR則通常占有其中的63個扇區(qū);而其中DBR的及保留扇區(qū)則占用其中的32個扇區(qū),但實際上該部分只占用了第1和第6部分的扇區(qū),真正起到存儲和管理作用的為第1扇區(qū),后續(xù)的第6扇區(qū)僅僅只起到備份的作用;FAT1則等于FAT2,其長度的變化則隨著整個FAT的變化隨著每個不同分區(qū)、扇區(qū)數(shù)的變化而呈現(xiàn)出變化,從而使得在FAT1受到損害之后,系統(tǒng)還可以對其中的FAT2進(jìn)行使用;在FAT區(qū)的后面在為系統(tǒng)根目錄的表示區(qū),該目錄通常是由若干個不同的目錄項目組成。而在該根目錄后則為系統(tǒng)數(shù)據(jù)區(qū),以此為用戶提供數(shù)據(jù)的存放和管理空間,該區(qū)通常被劃分為若干個相等的簇,從而方便對系統(tǒng)的管理。
在當(dāng)前的Windows操作系統(tǒng)下,系統(tǒng)文件被刪除,但是該數(shù)據(jù)并沒有被真正的刪除,而是成為了一個系統(tǒng)刪除的標(biāo)記。在用戶對文件的使用中,通常分為兩種類型的刪除,一種類型為通過電腦的“回收站”;另外一種類型則為不通過“回收站”。如果通過“回收站”對數(shù)據(jù)進(jìn)行刪除,被刪除的文件在通常會被放到回收站當(dāng)。此時在系統(tǒng)的文件目錄上會做出一定的標(biāo)記,但是在電腦硬盤當(dāng)中的FAT表和DATA區(qū)當(dāng)中卻沒有刪除和改動;而針對那些不經(jīng)過“回收站”而直接刪除的文件,即經(jīng)刪除的文件直接從電腦的回收站當(dāng)中直接進(jìn)行刪除。針對這種類型,在系統(tǒng)的文件目錄FDT中做標(biāo)記,也就是將所刪除文件的首字節(jié)標(biāo)記為ESH,同時將相應(yīng)的FAT表當(dāng)中的項值改做為OH,但是該文件在DATA當(dāng)中卻沒有被根本性的刪除。因此,針對這類問題,則采用第三方軟件等方式對丟失的數(shù)據(jù)進(jìn)行恢復(fù)。在這個過程中,在數(shù)據(jù)得到恢復(fù)之前,其不能向該分區(qū)或者是該磁盤寫入相關(guān)的新的信息和內(nèi)容。如在此時存入新的信息,則可能將刪除的信息進(jìn)行覆蓋,從而造成數(shù)據(jù)恢復(fù)受到影響。同時在對恢復(fù)軟件進(jìn)行安裝的時候,不能將該恢復(fù)軟件安裝到誤刪的磁盤當(dāng)中,同樣也為可能的安裝對原始的數(shù)據(jù)進(jìn)行覆蓋,以此導(dǎo)致恢復(fù)不成功。因此,在對數(shù)據(jù)的恢復(fù)中,最好采用光盤直接對數(shù)據(jù)軟件恢復(fù)進(jìn)行運(yùn)行。
FAT即為文件分配表,該表為在DOS/windows下的一個文件尋址的系統(tǒng)。針對的格式問題,其位置則通常為第一個FAT表的位置,也就是為引導(dǎo)扇區(qū)作為開始的第32個扇區(qū)。該文件的大小通常是由文件自身的分配單元所決定的,同時文件分配表占據(jù)整個扇區(qū)的大小是根據(jù)磁盤本身的類型及其大小所決定的。而FAT文件分配表的功能主要是對磁盤當(dāng)中文件的分配進(jìn)行記錄,該文件不是對文件的目錄表、引導(dǎo)區(qū)的一種信息的表示,同時也不是一種真正的存儲文件的系統(tǒng),而是通過該文件表明該磁盤的類型,表明磁盤中每個文件其占有的簇鏈的使用情況,表明在磁盤當(dāng)中存在的壞簇以及可用簇。對此,為了防護(hù)其中存在的意外情況,我們通常在電腦系統(tǒng)中采用兩個FAT文件,從而防止埃其中任意的文件出現(xiàn)損壞而給系統(tǒng)使用帶來的影響。在FAT32中,采用4個字節(jié)對其中的簇的位置進(jìn)行表示,同時每8個扇區(qū)對一個簇進(jìn)行編號,每個相應(yīng)的簇具有與其相互對應(yīng)的表項,一個簇號也就為一個表的項目好。FAT的文件中,對硬盤的存儲空間是通過簇進(jìn)行劃分、管理,同時其中的文件的存放為鏈?zhǔn)降拇鎯Y(jié)構(gòu),其可通過不哦天哪的簇進(jìn)行連接性的存儲,直到最后一個簇被標(biāo)記完。
通過對電腦中數(shù)據(jù)的刪除和其中的FAT文件的分析,可以看出硬盤文件的管理是通過FAT文件進(jìn)行。因此,在對數(shù)據(jù)進(jìn)行恢復(fù)的過程中,軟件的主要的功能則是通過用戶指定的文件名或者是盤符,從而找到在FAT32當(dāng)中被誤刪除的數(shù)據(jù),然后在根據(jù)路徑對其進(jìn)行恢復(fù)。對此,本文借助系統(tǒng)中的FAT和FDT的關(guān)系,并根據(jù)上述討論的FDT首字節(jié)修改為“OH”值的問題,采用對相應(yīng)值進(jìn)行修改的方式對FDT當(dāng)中的首字節(jié)值進(jìn)行搜索的方式,完成對丟失數(shù)據(jù)的查找和恢復(fù)。因此,根據(jù)該思路,其具體的流程則為:
1)通過FAT文件獲取磁盤相應(yīng)的信息,包括扇區(qū)、簇分區(qū)等;
2)通過其中的FAT文件對硬盤當(dāng)中的不同物理扇區(qū)的起始位置進(jìn)行計算,其中包括FDT當(dāng)中的帶有“OH”標(biāo)識值的文件類型、占用的大小和所存在的簇位置等;
3)改變其中的刪除微,并通過上述步驟2所得到的結(jié)果,對其進(jìn)行鏈?zhǔn)降牟檎遥?dāng)程序在搜索到文件的簇尾的時候,則停止對該步驟的操作;
4)對文件進(jìn)行格式的轉(zhuǎn)換,并對其進(jìn)行異盤的存儲。
而在對文件進(jìn)行讀取的過程中,則首先是通過其中的FDT文件,并結(jié)合FAT表從而找到該文件在磁盤當(dāng)中的具體的位置,其文件的查找的流程則如圖1所示。

圖1 文件查找流程Fig.1 File search process
通過上述對文件恢復(fù)的分析,其具體的程序?qū)崿F(xiàn)流程如圖2所示。通過對文件類型、分區(qū)號、DBR信息等的獲取,從而實現(xiàn)對刪除數(shù)據(jù)的恢復(fù)。

圖2 系統(tǒng)實現(xiàn)流程Fig.2 The system realization process
在對數(shù)據(jù)的恢復(fù)中,對數(shù)據(jù)的讀寫作為其關(guān)鍵,對系統(tǒng)文件的恢復(fù)具有重要的作用。但是通過對Windows系統(tǒng)下的對硬件設(shè)備的直接操控存在的困難,很多的人則比較熟悉對串口進(jìn)行編程,卻在對串口進(jìn)行讀寫的時候顯得比較陌生。對此,文中針對對刪除數(shù)據(jù)當(dāng)中最為關(guān)鍵的讀寫問題,引入函數(shù)、函數(shù)的方式對系統(tǒng)硬盤進(jìn)行直接操作,其具體的實現(xiàn)流程則如圖3所示。

圖3 讀寫程序?qū)崿F(xiàn)流程Fig.3 To read and write procedures implementation process
通過采用VC++6.0編程語言和工具對系統(tǒng)的源代碼進(jìn)行修改,從而可實現(xiàn)對數(shù)據(jù)的讀寫。如寫扇區(qū)源代碼則為:

圖4 寫扇區(qū)函數(shù)源代碼Fig.4 Write sectors function source code
通過對源代碼的編程、增添和修改,從而實現(xiàn)了如圖5所示的文件恢復(fù)界面。

圖5 系統(tǒng)軟件數(shù)據(jù)恢復(fù)結(jié)果Fig.5 System software data recovery results
通過對上述程序的設(shè)計,實現(xiàn)了對文件分配規(guī)則的設(shè)計,同時還對文件恢復(fù)中的讀寫技術(shù)利用其中的讀寫函數(shù)進(jìn)行了實現(xiàn),從而得到比較理想的結(jié)果。
[1]戴士劍,涂彥暉.數(shù)據(jù)恢復(fù)技術(shù)[M].2版.北京:電子工業(yè)出版社,2007.
[2]鄧劍,楊曉非,廖俊卿.FAT文件系統(tǒng)原理與實現(xiàn)[J].計算機(jī)與數(shù)字工程,2005,33(9):105-108.
[3]張娜,馮云鵬.Windows FAT32和 NTFS下的數(shù)據(jù)恢復(fù)研究[J].信息技術(shù),2010(5):162-164,199.
[4]魯恩銘,王樂,曹敏志.Windows NTFS下格式化數(shù)據(jù)恢復(fù)方案設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2010,10(9):2103-2107.
[5]趙曉柯.基于Windows FAT32的數(shù)據(jù)恢復(fù)原理分析及算法研究[J].科技信息,2010(14):222-223.
[6]遲揚(yáng),李亞波.FAT32文件系統(tǒng)下的數(shù)據(jù)恢復(fù)分析[J].計算機(jī)安全,2011(4):66-68.
[7]鐘秀玉.基于 FAT32的數(shù)據(jù)恢復(fù)系統(tǒng)的設(shè)計[C].梅州市自然科學(xué)優(yōu)秀學(xué)術(shù)論文集(第十屆),2010.