張生月,肖 珺,肖 靜,達 虎,李葆光
(甘肅省計算中心,甘肅 蘭州 730000)
淺析基于文件定位的數(shù)據(jù)恢復*
張生月,肖 珺,肖 靜,達 虎,李葆光
(甘肅省計算中心,甘肅 蘭州 730000)
主引導記錄(MBR)磁盤分區(qū)是大家現(xiàn)如今運用最為普遍的一種分區(qū)結(jié)構(gòu),它主要的功能就是確認分區(qū)表是否正確,當確認準確后就會找到哪個分區(qū)是引導分區(qū),并且它還在程序結(jié)束的時候把這個分區(qū)的啟動程序調(diào)入內(nèi)存然后就開始執(zhí)行。所以本文主要根據(jù)MBR的工作原理和功能來對磁盤分區(qū)進行文件定位進而對誤刪除或誤操作導致丟失了的數(shù)據(jù)進行數(shù)據(jù)恢復操作。
主引導記錄;分區(qū)結(jié)構(gòu);文件定位;數(shù)據(jù)恢復
隨著現(xiàn)代計算機技術(shù)、通訊技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,計算機在人們的各行各業(yè)的應(yīng)用已經(jīng)非常普遍。通過對計算機的使用會產(chǎn)生越來越多的數(shù)據(jù),而這些數(shù)據(jù)對工作的重要已不言而喻,也已經(jīng)成為重要的保護對象。但是在人們使用和存儲這些數(shù)據(jù)時,數(shù)據(jù)會被錯誤地刪除或操作,這樣就會使數(shù)據(jù)丟失成為常見的問題。而基于文件定位的數(shù)據(jù)恢復技術(shù),就可以正確還原這些被刪除的文件和數(shù)據(jù),在NTFS文件系統(tǒng)中,不論文件是不是連續(xù)存放,文件或者是目錄在被刪除后都可以通過該文件記錄找到文件存放具體位置如起始簇號從而進行數(shù)據(jù)恢復,但是當誤刪除的文件或者數(shù)據(jù)比較多時,需要逐個恢復,工作效率可能會比較低。
硬盤的內(nèi)部結(jié)構(gòu)經(jīng)常專門指的是盤體的內(nèi)部構(gòu)造。盤體是一個密封的空間,里面主要存在著磁頭、磁頭控制器、盤片、主軸、控制電機、數(shù)據(jù)轉(zhuǎn)換器、接口、緩存等部件。當我們經(jīng)過操作系統(tǒng)對文件進行訪問的時候,操作系統(tǒng)就會通過查找硬盤相應(yīng)位置來調(diào)用要求訪問的文件,而這些文件的分布則都是通過盤片上的邏輯參數(shù)所決定的。操作系統(tǒng)在劃分硬盤所有區(qū)域時,一般劃分的區(qū)域會被稱為磁道、扇區(qū)、柱面,而當硬盤在尋找文件存放的地址時則是通過這幾個邏輯參數(shù)進行的。在對硬盤分區(qū)之后,操作系統(tǒng)則會在硬盤的0柱面、0磁道、1扇區(qū)處創(chuàng)建硬盤分區(qū)表,這個分區(qū)表就是被我們稱為主引導扇區(qū)的分區(qū)表,簡稱MBR。主引導扇區(qū)的功能則是在操作系統(tǒng)之前進行工作,依據(jù)主分區(qū)表中的信息來管理硬盤,然后再將硬盤控制權(quán)交給屬于活動分區(qū)的操作系統(tǒng)。而主引導記錄磁盤的分區(qū)模式一般有主分區(qū)、擴展分區(qū)、非DOS分區(qū)這3類。而第一個分區(qū)表一直是位于硬盤的0柱面、0磁頭、1扇區(qū),其余的分區(qū)表位置則都可以通過主分區(qū)表進行回推計算。從磁盤分區(qū)結(jié)構(gòu)我們可以清楚明白,操作系統(tǒng)主要通過主引導記錄MBR和擴展引導記錄EBR來管理磁盤分區(qū)。在主引導記錄磁盤分區(qū)中,分區(qū)表占了64字節(jié),而每個分區(qū)表項占了16字節(jié),分區(qū)的分區(qū)表項是從1BEH偏移處開始到55AAH結(jié)束,這樣就共有4個分區(qū)表項,操作系統(tǒng)一般只是使用前面的兩個分區(qū)表項來定義和描述本分區(qū)結(jié)構(gòu)和下一分區(qū)結(jié)構(gòu)。如果硬盤的存儲容量比較大時,并且需要有更多的磁盤分區(qū)時,就必須使用擴展分區(qū),這樣便可以用擴展引導記錄(EBR)表示和定義,主引導記錄磁盤分區(qū)的整體結(jié)構(gòu)[1]如圖1所示。
圖1 MBR分區(qū)結(jié)構(gòu)
通過圖1可以知道主磁盤分區(qū)是通過主引導記錄中的分區(qū)表進行定位,而擴展分區(qū)之間則經(jīng)由指針結(jié)構(gòu)從而形成一個單向鏈表來實現(xiàn)定位。在FAT16文件系統(tǒng)的每個分區(qū)表中包含著操作系統(tǒng)引導記錄DBR,F(xiàn)AT1/2,FDT和DATA,但在FAT32文件系統(tǒng)的FDT則是在數(shù)據(jù)區(qū)。在NTFS文件系統(tǒng)中的操作系統(tǒng)引導記錄DBR包含在$BOOT文件中,和文件有關(guān)的信息在NTFS文件系統(tǒng)中被稱為屬性,而這些屬性則以文件記錄的形式在$MFT中存放,NTFS文件系統(tǒng)位置結(jié)構(gòu)[2]如圖2所示。
圖2 NTFS文件系統(tǒng)結(jié)構(gòu)
由圖1看到FAT表與FDA表對數(shù)據(jù)是鏈式存儲和管理的,這樣就可以通過鏈式搜索查找相關(guān)數(shù)據(jù)。而只有將FAT表和FDT表聯(lián)結(jié)起來,才可以管理整個磁盤內(nèi)的相關(guān)文件,也同樣可以準確找到被刪除文件的具體位置。通過閱讀資料[3]了解到,在Windows操作系統(tǒng)下刪除普通的文件,則是將FDT表中該文件的第一個特征字符改為“E5”來操作,同時對引導扇區(qū)的第二個扇區(qū)中信息進行改寫,該操作是修改刪除文件分區(qū)點占用空間大小的相應(yīng)信息[4]。這樣根據(jù)文件的存儲結(jié)構(gòu),在恢復文件的時候,主要就是查找“E5”刪除標志,而后對被刪除文件采用回溯遞推方法尋找數(shù)據(jù)鏈并進行數(shù)據(jù)塊的反向恢復。
通過圖2了解到,對于NTFS分區(qū),主要由主文件表MFT來管理數(shù)據(jù)。在對NTFS文件系統(tǒng)下執(zhí)行刪除文件操作或者格式化文件的時候,操作系統(tǒng)則只是將文件頭部中的數(shù)據(jù)屬性體DATARUNS中的16-17H處標志字節(jié)設(shè)置為00/02H,還有其他微小的變化,如日志序列號發(fā)生變化(增1,使用次數(shù)發(fā)生變化),而對文件的其他如基本屬性10屬性、文件名30屬性沒有其他任何操作;對于正在運行的文件,則釋放該文件所占用的空間,不改變該文件占用數(shù)據(jù)區(qū)的數(shù)據(jù),只將運行所占用的簇信息在文件$Bitmap中所相對應(yīng)的位置處設(shè)置為0[5]操作。因此針對它的恢復軟件只要修改屬性體DATARUNS中的標志字節(jié),即可恢復數(shù)據(jù)了。
當前信息的爆炸式增長,針對數(shù)據(jù)的丟失和破壞現(xiàn)象愈演愈烈,如何保護好重要數(shù)據(jù)信息,在數(shù)據(jù)被破壞或丟失的情況下,怎們盡可能的挽救回這些信息,將是長期而艱巨的話題。
本文簡單介紹了文件系統(tǒng)被刪除數(shù)據(jù)恢復相關(guān)理論知識,并相應(yīng)地介紹了針對刪除操作引起的數(shù)據(jù)丟失所需要進行的恢復步驟,但是用戶的計算機系統(tǒng)發(fā)生重要數(shù)據(jù)被損壞或丟失的情況不只誤刪除一種,所以數(shù)據(jù)恢復的研究范圍十分廣泛,而如何實現(xiàn)不同數(shù)據(jù)丟失情形下的最大化恢復則成為當前研究的主要問題,因此對于數(shù)據(jù)恢復技術(shù)需要更進一步地研究與探討。
[1] 劉偉.數(shù)據(jù)恢復技術(shù)深度揭秘[M].北京:電子工業(yè)出版社,2010.
[2] 馬國富,馬勝利,王子賢,等.數(shù)據(jù)恢復在電子數(shù)據(jù)取證與司法鑒定中的應(yīng)用[J].河北大學學報(自然科學版),2015, 35(5):538-545
[3] 傅祿,霍永.電子物證中數(shù)據(jù)恢復技術(shù)淺析[J].電腦編程技巧與維護.2016,46-47.
[4] 王強.Windows平臺下磁盤數(shù)據(jù)恢復技術(shù)的研究與實現(xiàn)[D].四川:四川師范大學,2008.
[5] 趙雙峰,費金龍,劉楠,武東英.Windows NTFS下數(shù)據(jù)恢復的研究與實現(xiàn)[J].計算機工程與設(shè)計,2008,(29):306-308.
TP29
甘肅省科技支撐計劃項目編號:1504FKCA039。