吳 琪
(吉林警察學(xué)院 信息工程系,長春 130117)
在信息大爆炸的當(dāng)代,計算機在人們?nèi)粘I罟ぷ鳟?dāng)中扮演的角色越來越重要,幾乎所有的企事業(yè)單位、普通個人都使用計算機處理信息,輔助日常的生活工作,同時也會將需要的數(shù)據(jù)信息存儲到計算機的硬盤當(dāng)中。但是,一旦發(fā)生了意外的狀況,造成了數(shù)據(jù)的丟失,可能會對企業(yè)個人造成不可估量的損失。因此,如何進行有效的數(shù)據(jù)恢復(fù)是非常重要的,這就使得數(shù)據(jù)恢復(fù)技術(shù)成為一個不可或缺的關(guān)鍵的技術(shù)。目前市場上的計算機操作系統(tǒng)多數(shù)是微軟的Windows,其文件系統(tǒng)廣泛使用的是NTFS文件,本文就著重分析了NTFS數(shù)據(jù)恢復(fù)技術(shù)。
計算機當(dāng)中數(shù)據(jù)損害的原因有很多,通常分為硬故障和軟故障兩個原因。硬故障是指硬盤受到自然災(zāi)害或者是人為的因素受到實質(zhì)性的物理損傷導(dǎo)致數(shù)據(jù)無法正確的讀取。比如說硬盤的讀寫磁頭受到劇烈震動后遭到損壞,電路的主板燒毀,硬盤上的物理通道損壞等等。軟故障是指硬盤的物理性能完好,但是由于用戶的誤操作或者病毒入侵等等造成了丟失數(shù)據(jù)。比如,由于錯誤操作格式化硬盤,誤拷貝數(shù)據(jù)覆蓋原來數(shù)據(jù),意外的電磁干擾,意外中了木馬病毒或者黑客非法入侵等等,造成操作系統(tǒng)沒辦法正常的啟動,找不到需要的文件或者文件打開是亂碼或者硬盤的沒有分區(qū)甚至分區(qū)癱瘓等錯誤。
微軟當(dāng)前的文件系統(tǒng)有FAT和NTFS兩種,F(xiàn)AT又可分為FAT12、FAT16、FAT32三種文件類型,這三種文件結(jié)構(gòu)當(dāng)中只有FAT32支持大于2GB的分區(qū),最大可達到4GB。但是隨著文件信息量的增多,4GB已經(jīng)遠遠不能滿足當(dāng)前的需要,NTFS由此產(chǎn)生。NTFS文件系統(tǒng)是伴隨著微軟的Windows NT操作系統(tǒng)而產(chǎn)生的,NTFS分區(qū)主要有引導(dǎo)扇區(qū)、系統(tǒng)文件、主文件表、文件存儲區(qū)域4個部分組成。它具有極為出色的安全穩(wěn)定性能,在使用的過程當(dāng)中不像FAT那樣容易產(chǎn)生碎片,并且NTFS還提供容錯日志。由于NTFS支持的文件可以達到64GB,目前已經(jīng)能夠滿足人們的日常的需要。
NFFS的結(jié)構(gòu)是按照簇分配來存取文件的,每個簇都是物理扇區(qū)的整數(shù)倍數(shù),為2的整數(shù)次方,格式化程序依據(jù)卷的大小自動分配簇的大小。NTFS主要是采用虛擬簇號和邏輯簇號來進行簇的定位,使用邏輯符號對簇按照一定的順序來編號,然后將卷因子乘上邏輯簇號,這樣就能夠得到字節(jié)的偏移量,然后根據(jù)偏移量能夠得到物理磁盤的地址。虛擬簇號主要對特定的文件進行編號,方便對其進行引用。
分區(qū)引導(dǎo)扇區(qū)對于操作系統(tǒng)而言至關(guān)重要,啟動引導(dǎo)程序和結(jié)構(gòu)的信息都存在該地方。操作系統(tǒng)在建立文件系統(tǒng)的時候,會生成BPB參數(shù),參數(shù)當(dāng)中記錄了簇扇區(qū)數(shù)目、文件的系統(tǒng)標識等NTFS的關(guān)鍵的信息,并且以文件形式存儲這些數(shù)據(jù)。
NTFS當(dāng)中的重要核心就是主文件表MTF,MFT可以確定文件在磁盤當(dāng)中的存儲地址,主文件表是由一系列的文件記錄組成的,記錄了與之對應(yīng)的數(shù)據(jù)庫。每個文件都有相應(yīng)的文件記錄,其中第一個文件記錄是最基本的文件,擴展文件的重要的信息就存儲在其中。
NTFS文件屬性分為非常駐屬性和常駐屬性。文件記錄當(dāng)中存儲的屬性值就是常駐屬性,存儲在文件記錄之外的就是非常駐屬性。屬性類型包含了屬性頭的前4個字節(jié),其中包含了文件的創(chuàng)建時間、修改時間、文件名等等信息。
當(dāng)用戶對NTFS采用高級格式化的方式格式化時,計算機格式化程序會進行自動刪除操作,但是并沒有完全刪除保存在根目錄的索引信息,并且在MFT當(dāng)中詳盡記錄了刪除的信息。如果沒有對硬盤進行數(shù)據(jù)覆蓋,對硬盤上數(shù)據(jù)恢復(fù)的話,,那么能夠恢復(fù)的可能性是十分大的。但是如果用戶對NTFS進行的是低級格式化,格式化的程序會填充改卷的數(shù)據(jù),此時進行數(shù)據(jù)的恢復(fù)就會比較困難。幸好,現(xiàn)在Windouws操作系統(tǒng)主要采用的是高級格式化,具體主要體現(xiàn)在如下幾個方面:
3.1.1 獲得文件的數(shù)據(jù)屬性和名字
作為主控文件的MFT,記錄了NTFS文件系統(tǒng)當(dāng)中文件的所有屬性和文件的存儲位置。MFT則被存放在了約占12%磁盤存儲空間的MFT區(qū)域空間當(dāng)中。因此,如果找到了MFT區(qū)域的起始位置,那么便能夠找到所有的MFT,從而獲得所有文件的文件屬性和數(shù)據(jù)屬性。
3.1.2 獲取MFT的起始的位置
若格式化硬盤后仍然使用MTFS系統(tǒng),可以通過BPB參數(shù)可以快速找到MFT區(qū)域的起始位置。如果換成FAT32文件系統(tǒng),需要從第16扇區(qū)開始掃描MFT。因為MFT前16項存儲了數(shù)據(jù)文件,后面的才開始建立文件夾的MFT。所以,此時從16扇區(qū)開始掃描。
3.1.3 生成目錄截點
在恢復(fù)數(shù)據(jù)的過程當(dāng)中,需要找到每個文件對應(yīng)的目錄名稱,用來恢復(fù)數(shù)據(jù)。如果是在30H屬性當(dāng)中偏移18H的地方,那么可以輕易的找到文件的參考號。如果找不到有關(guān)文件的目錄信息,那么可以將根目錄的名稱設(shè)置成父目錄的形式,然后繼續(xù)尋找有關(guān)的信息。
圖1 整體的恢復(fù)流程圖
3.1.4 重構(gòu)目錄樹
NTFS格式中的目錄結(jié)構(gòu)通常情況是以B+的結(jié)構(gòu)出現(xiàn)的。整個樹目錄是由子節(jié)點定位數(shù)據(jù)組成,樹目錄的定位信息被保持在了由索引分配的屬性當(dāng)中,因此只要找到這些定位信息就能夠重新構(gòu)建目錄樹。重構(gòu)目錄樹主要是利用MFT的文件編號結(jié)合父目錄,查找到相應(yīng)的數(shù)據(jù)信息來進行的。
3.1.5 數(shù)據(jù)恢復(fù)操作
查找到數(shù)據(jù)信息之后,在存儲位置建立一個文件目錄,文件目錄需要和上述信息對應(yīng),等物理地址讀取完成后,判斷文件的數(shù)據(jù)屬性。如果為非常駐屬性,需要從頭到尾讀取運行的數(shù)據(jù),然后重新寫入。如果是常駐屬性,則僅僅需要將數(shù)據(jù)重新定義到文件當(dāng)中。
方案的設(shè)計思想:恢復(fù)Windows NTFS下格式化了的數(shù)據(jù)的程序設(shè)計原理,分為以下的步驟,首先獲得文件的MFT的初始的位置,然后再架構(gòu)出文件系統(tǒng)的目錄樹,然后讀取出存在目錄樹當(dāng)中的地址,根據(jù)地址查找出詳細的數(shù)據(jù),最后將數(shù)據(jù)寫入到新的文件當(dāng)中,從而完成數(shù)據(jù)恢復(fù)的工作。其整體的恢復(fù)流程圖如圖1所示。
3.2.1 DBR結(jié)構(gòu)
3.2.2 文件存儲鏈中一項結(jié)構(gòu)
本文詳細的分析了NTFS文件系統(tǒng)的結(jié)構(gòu)和存儲數(shù)據(jù)的結(jié)構(gòu),重點分析研究了NTFS的系統(tǒng)的主文件表以及其他的關(guān)鍵的特性,然后提出了恢復(fù)數(shù)據(jù)的方法。需要提醒的是,并不是所有的數(shù)據(jù)在丟失之后都能夠恢復(fù)的,需要在保證數(shù)據(jù)安全的前提條件之下,及時備份重要文件。當(dāng)刪除數(shù)據(jù)后,應(yīng)該盡量的避免進行新的存儲操作,減少原來的數(shù)據(jù)被覆蓋的可能性,從而提高數(shù)據(jù)恢復(fù)的概率。
[1]杜江,王石東.計算機取證中的數(shù)據(jù)恢復(fù)技術(shù)研究[J].重慶郵電大學(xué)學(xué)報:自然科學(xué)版,2010(10):683-687.
[2]向科峰.基于NTFS格式的數(shù)據(jù)恢復(fù)關(guān)鍵技術(shù)研究[J].長春理工大學(xué)學(xué)報,2011(3):183-184.
[3]趙雙峰,費金龍,劉楠,武東英.Windows NTFS下數(shù)據(jù)恢復(fù)的研究與實現(xiàn)[J].計算機工程與設(shè)計,2008(1):306-308.
[4]降巖.計算機取證中關(guān)鍵技術(shù)研究[M].上海:上海交通大學(xué),2010.
[5]張娜,馮云鵬.Windows FAT32和NTFS下的數(shù)據(jù)恢復(fù)研究[J].信息技術(shù),2010(5):162-164.
[6]翁盛鑫,吳泊翰,謝邦鐵.數(shù)據(jù)恢復(fù)關(guān)鍵技術(shù)與實戰(zhàn)指南[M].北京:電子工業(yè)出版社,2012.