當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]摘要 在研究Windows操作系統(tǒng)中文件管理系統(tǒng)NTFS的基礎(chǔ)上,提出一種徹底清除磁盤數(shù)據(jù)的方法。NTFS對文件的訪問操作,主要通過與文件相關(guān)的MFT表進行,這與FAT系統(tǒng)存在較大差異。通過分析MFT表管理磁盤數(shù)據(jù)的方法,建立

摘要 在研究Windows操作系統(tǒng)中文件管理系統(tǒng)NTFS的基礎(chǔ)上,提出一種徹底清除磁盤數(shù)據(jù)的方法。NTFS對文件的訪問操作,主要通過與文件相關(guān)的MFT表進行,這與FAT系統(tǒng)存在較大差異。通過分析MFT表管理磁盤數(shù)據(jù)的方法,建立一種樹形目錄結(jié)構(gòu),并以該樹形目錄作為管理磁盤中所有MFT表的工具。采用遍歷之后立即釋放樹結(jié)點的方法,解決了內(nèi)存過度占用的問題。該技術(shù)可以在磁盤扇區(qū)直接清除數(shù)據(jù),還可對數(shù)據(jù)進行更加直接的管理,減少了對操作系統(tǒng)的依賴,可操作性和安全性良好。
關(guān)鍵詞 磁盤數(shù)據(jù);NTFS;MFT表;扇區(qū);樹結(jié)構(gòu)

    安全的磁盤清理軟件可以很好地為數(shù)字化信息系統(tǒng)服務。目前大部分磁盤清理軟件未能徹底清除在磁盤中的數(shù)據(jù),對于磁盤上已經(jīng)刪除的文件信息在未重新寫入新的文件時,Windows只是標記,并沒有進行數(shù)據(jù)清理。這就使得可以通過數(shù)據(jù)恢復的手段獲取保密信息,大多數(shù)清理軟件只是采用重新填寫無效文件的方式清除磁盤上的數(shù)據(jù)。而這樣會大大縮短磁盤的使用壽命。文中研究了Windows的文件系統(tǒng)NTFS清除磁盤數(shù)據(jù)的原理,采用直接訪問NTFS的主文件列表找到文件具體存儲的位置,并解碼二進制文件,從而徹底清除文件,減少了對操作系統(tǒng)的依賴,避免了大量盲目填寫無效文件的操作,并保護了磁盤使用壽命。

1 NTFS系統(tǒng)結(jié)構(gòu)原理
1.1 基本原理
    NTFS是Windows NT引入的新型文件系統(tǒng),由于NTFS的結(jié)構(gòu)復雜,內(nèi)容繁多,這里僅對NTFS卷上的底層結(jié)構(gòu)做分析。在NTFS格式中,文件以簇的形式分配。最小的單位為扇區(qū),N個扇區(qū)為一簇。其中,N的值由引導扇區(qū)規(guī)定。NTFS格式磁盤的數(shù)據(jù)分為4大部分:引導區(qū)、主文件列表、系統(tǒng)文件和文件數(shù)據(jù)區(qū)。
    引導區(qū)(Partition boot sector):所有磁盤格式都有這個區(qū),占用了磁盤第一個扇區(qū)。
    主文件列表(Master File List):記錄了卷上所有文件,每個文件對應了表上的一條記錄。
    系統(tǒng)文件(System file):NTFS一共有16個系統(tǒng)文件,8個隱藏文件。
    文件數(shù)據(jù)區(qū)(File Area):存放文件數(shù)據(jù)。
    NTFS跟FAT16,F(xiàn)A332一樣都在引導扇區(qū)中有一些BPB參數(shù),但與FAT32,F(xiàn)AT16并不完全相同。文獻對NTFS引導扇區(qū)一些重要數(shù)據(jù)的含義進行了詳細介紹。
1.2 主控文件表與元數(shù)據(jù)文件
    MFT是一個對應的數(shù)據(jù)庫,由一系列的文件記錄組成,卷中每一個文件都有一個文件記錄。主文件表本身也有自己的文件記錄。實際上,MFT自身也是一個文件,因此,主文件列表的第一個記錄就是它自身。MFT的每個記錄都有一個編號,這里稱為ID號,這個ID從0開始。MFT自身是NTFS系統(tǒng)的第一個文件,所以文件$MFT的ID號為0。
    MFT和其他23個文件一起,用戶每添加一個文件ID號加1。MFT頭的長度跟偏移處的數(shù)據(jù)含義不變,但屬性列表是可變的,其不同的屬性列表,有著不同的含義,最后能看到MFT表以FFFFFFFFH結(jié)束。
    MFT頭的標準信息見文獻,它對MFT表的結(jié)構(gòu)進行了全面的分析。MFT前16個文件屬于系統(tǒng)文件,也稱為元文件,用于存放系統(tǒng)中的元數(shù)據(jù),元數(shù)據(jù)文件及其作用見文獻。
1.3 文件的MFT記錄及其包含的屬性
    一個文件通常占用一條文件記錄。然而當一個文件具有多項屬性值的時候,就可以占用一個以上的文件記錄。這樣的情況下,第一個文件記錄就是基本文件記錄。其中存儲了該文件需要其他文件記錄的位置。小文件和小的文件夾將全部存放在MFT記錄中。
    文件記錄包含索引信息,小的文件夾記錄完全存儲在MFT結(jié)構(gòu)里。然而大文件與文件夾被組織成為B+樹結(jié)構(gòu),一個指針指向一個外部簇,該簇用來存放那些MFT內(nèi)存儲不了的文件夾屬性。
    在MFT記錄中的每個屬性都有一個屬性頭,這個屬性頭包含一些該屬性的重要信息,如屬性類型、大小、名字以及是否為常駐屬性等。

2 具體實現(xiàn)方法
    具體實現(xiàn)分為兩個模塊:(1)索引磁盤中所有文件的數(shù)據(jù)段在磁盤中存放的起始簇號。(2)動態(tài)建立一個與磁盤文件存放相對的文件樹,對子樹進行遍歷查找每個文件數(shù)據(jù)段的簇號,從而可以從扇區(qū)直接清除數(shù)據(jù)信息。最后刪除所建立的子樹,釋放占據(jù)的內(nèi)存空間。
2.1 索引磁盤中未刪除文件的簇號
    在NTFS中,文件目錄僅是文件名的一個索引,NTFS使用了一種特殊的方式把文件名組織起來,以便快速訪問。當創(chuàng)建一個目錄時,NTFS必須對目錄中的文件名屬性進行索引。
    一個目錄的MFT將其目錄中的文件名與子目錄名進行排序,并保存在索引根屬性中。所以可以通過訪問根目錄的索引分配找到磁盤上面的一級目錄,并記錄下其MFT參考號,然后在通過該參考號獲取MFT文件,進而再找到其索引分配,就可以將一級目錄下的子目錄全部及找到,直到不再有子目錄為止。可建立出整個磁盤的目錄樹,每項MFT文件中都記錄了該文件是被刪除或正在被使用的目錄。通過解析以上分析的屬性就能獲取這些信息,該算法流程如圖1所示。


    圖中每一步操作都是根據(jù)MFT表的屬性進行編碼。
    第一步從分區(qū)信息表即中可以獲得這些有用的信息。讀取特定扇區(qū)的信息可以調(diào)用CreateFile與ReadFile來實現(xiàn)。讀取某個MFT元文件的具體方法是:通過BPB參數(shù)獲取$MFT的位置,然后根據(jù)源文件的MFT記錄號,移動句柄,就可以順利讀取MFT元文件。由于每個MFT文件的大小是1 kB,所以句柄的偏移dwStartSector=MFT文件記錄號×2+$MFT所在的扇區(qū)號。即可訪問任何一個磁盤的MFT元數(shù)據(jù)文件信息。
    第二步根據(jù)根目錄的MFT文件信息,解析索引A0H屬性從而找出索引信息,這涉及到解碼二進制文件。
    第三步根據(jù)索引中的信息找出根目錄的子目錄的MFT編號,再根據(jù)這個編號打開MFT文件內(nèi)容,找出30H屬性與MFT屬性頭,解析文件名,以及標記文件是否為目錄,是否被刪除的信息。
    第四步如果該文件是目錄,則繼續(xù)查找它下面的子目錄,否則轉(zhuǎn)第五步。
    第五步 如果該文件已刪除,則返回第一步;否則,打開它對應的MFT文件,然后解析80H屬性,找到文件數(shù)據(jù)段開始的簇號,并記錄下來。
2.2 建立磁盤對應的文件樹
    建立一個N叉樹來表示每一個磁盤中的文件存放,只是它的數(shù)據(jù)信息就是上面獲取的文件數(shù)據(jù)段開始的簇的編號。遍歷文件樹的過程,即是獲取簇號以及對相應簇的信息進行清除的過程。每個磁盤中MFT表的數(shù)量巨大,所以在遍歷完根目錄下子目錄的所有文件時,要刪除該子樹,便于釋放內(nèi)存,從而減少算法的空間開銷。而且N叉樹的數(shù)據(jù)結(jié)構(gòu)本身對遍歷效率也有很大提升,筆者采用深度優(yōu)先遞歸搜索,并對此進行優(yōu)化,取得了良好效果。
    測試平臺為windows7,測試工具為winhex。清除之前可以看到新建文本文檔大小是6.9 kB,所在簇的信息如圖2所示。


    執(zhí)行程序后結(jié)果如圖3所示??梢钥吹轿募拇笮w0,并且80H的信息發(fā)生變化,原本存儲的索引內(nèi)容全部被清除為0,即文件的數(shù)據(jù)信息全部被清除。

3 結(jié)束語
    NTFS文件系統(tǒng)十分復雜,這里主要針對NTFS系統(tǒng)管理磁盤的MFT文件進行分析,解析它的一系列屬性,得到每個文件的數(shù)據(jù)段信息的開始簇號。通過對磁盤建立文件樹,標記所有未刪除文件的數(shù)據(jù)段開始的簇號,從而可以直接清除剩余磁盤簇的信息,達到繞過操作系統(tǒng)直接對扇區(qū)進行清除的目的,避免了數(shù)據(jù)恢復的可能。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉