• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于文件名搜索的NTFS文件恢復(fù)方法研究

      2023-03-21 02:22:12吳淑惠
      計(jì)算機(jī)時代 2023年3期
      關(guān)鍵詞:文件名回收站磁盤

      吳淑惠

      (北京市工貿(mào)技師學(xué)院數(shù)媒系,北京 100097)

      0 引言

      NTFS(New Technology File System)是Windows NT內(nèi)核的系列操作系統(tǒng)支持的、一個特別為網(wǎng)絡(luò)和磁盤配額、文件加密等管理安全特性設(shè)計(jì)的磁盤格式,它提供長文件名、數(shù)據(jù)保護(hù)和恢復(fù),能通過目錄和文件許可實(shí)現(xiàn)安全性,并支持分區(qū)跨越[1],是當(dāng)前應(yīng)用最為廣泛的文件系統(tǒng)。

      任何文件系統(tǒng)都可能出現(xiàn)無意刪除文件的情況,NTFS文件系統(tǒng)由于使用的廣泛性,出現(xiàn)該問題的頻率自然較高,因此,恢復(fù)被刪除的NTFS 文件是人們的正常需求。盡管當(dāng)前已有眾多軟件致力于解決此問題,但由于NTFS 文件系統(tǒng)存儲結(jié)構(gòu)的復(fù)雜性,用戶的電腦又千差萬別,因此,對于專業(yè)數(shù)據(jù)恢復(fù)人員而言,需要理解NTFS 文件存儲的內(nèi)部邏輯,掌握使用Winhex進(jìn)行底層恢復(fù)的技能。

      文件被刪除,包括從回收站中刪除和使用shift+delete 組合鍵直接刪除兩種情況。它們對NTFS 文件系統(tǒng)的改變略有不同,恢復(fù)方法也稍有差異。本文針對這兩種情況分別研究了其恢復(fù)方法。

      在文件恢復(fù)過程中,往往需要計(jì)算其存儲位置及數(shù)據(jù)塊大小,這些計(jì)算步驟較為繁瑣,其中數(shù)據(jù)流(data run)的計(jì)算較為復(fù)雜且不可或缺,本文研究了在Excel 中進(jìn)行自動計(jì)算的公式,并將其先于數(shù)據(jù)恢復(fù)方法呈現(xiàn)。

      1 文件存儲位置與數(shù)據(jù)塊大小的計(jì)算

      NTFS 文件恢復(fù)中,文件存儲位置與數(shù)據(jù)塊大小的獲得需要下述三種計(jì)算。

      1.1 磁盤基本情況

      在數(shù)據(jù)恢復(fù)中,$MFT所在扇區(qū)至關(guān)重要。Winhex可以自動識別$MFT 所在扇區(qū),單擊目錄瀏覽區(qū)$MFT項(xiàng)可進(jìn)入該扇區(qū),也可通過查看該分區(qū)0 扇區(qū)的DBR模板獲得$MFT 開始簇號再乘以每簇扇區(qū)數(shù)得到$MFT所在扇區(qū)號。

      1.2 文件記錄所在扇區(qū)

      數(shù)據(jù)恢復(fù)中,經(jīng)常需要通過記錄參考號找到文件記錄所在扇區(qū),實(shí)際計(jì)算時可通過將記錄參考號轉(zhuǎn)換為十進(jìn)制數(shù)乘以2,再加上$MFT所在扇區(qū)號獲得。

      1.3 data run的計(jì)算

      在NTFS 文件系統(tǒng)中,data run是一個有著特定含義的數(shù)據(jù)系列,它指向數(shù)據(jù)的存儲位置和大小[2],在文件恢復(fù)過程中對其進(jìn)行計(jì)算是必不可少的。

      一個data run 可以有1~n 個data list。NTFS 文件系統(tǒng)中,一個文件可能是連續(xù)存儲,也可能是非連續(xù)存儲,如果是連續(xù)存儲,則只有一個data list,反之,則有多個data list。Data list 的結(jié)構(gòu)較為復(fù)雜:第1 個data list 的第1 個字節(jié),高位為該data list 所表示的數(shù)據(jù)塊的起始簇號所占用字節(jié)數(shù)(N),低位為數(shù)據(jù)塊所占用簇?cái)?shù)的字節(jié)數(shù)(L);第2~L+1 個字節(jié)表示數(shù)據(jù)塊所占用簇?cái)?shù);第L+2~L+N+1 個字節(jié)為數(shù)據(jù)塊起始簇號。第2 個data list 的1~L+1 個字節(jié)含義與第1 個data list 含義相同;第L+2~L+N+1 個字節(jié)為起始簇的相對簇號(此簇號為有符號數(shù),換算成十進(jìn)制值有可能是負(fù)數(shù)),在實(shí)際計(jì)算時將該起始簇號加上第1 個data list 的起始簇號,得到第2 個data list 的實(shí)際起始簇號。第3~n 個data list 字節(jié)的含義與第2 個相同。為了實(shí)現(xiàn)data run 的自動計(jì)算,本文結(jié)合data run 的意義與excel函數(shù),研究出了下述表格(圖1所示)。

      圖1 文件存儲位置與數(shù)據(jù)塊大小的計(jì)算

      1.3.1 數(shù)據(jù)塊大小的計(jì)算

      表格C~F 列計(jì)算數(shù)據(jù)塊的大小,C7、D7、E7、F7 中的公式分別為“=MID(B7,2,1)”、“=IF(C7-3<0,"",MID(B7,7,2))&IF(C7-2<0,"",MID(B7,5,2))&MID(B7,3,2)”、“=HEX2DEC(D7)”和“=E7*512*$C$4”。后續(xù)行填充復(fù)制上述公式即可。

      1.3.2 文件存儲位置的計(jì)算

      表格中G~K列計(jì)算數(shù)據(jù)塊的存儲位置。

      ⑴第一項(xiàng)data list的計(jì)算

      G7 計(jì)算起始LCN 的位數(shù),公式為:=LEFT(B7,1);H7表示起始LCN加減標(biāo)志,對于第1個data list,直接填入“0”;I7 計(jì)算data list 起始LCN 的十六進(jìn)制值,公式為=MID(B7,LEN(B7)-1,2)&IF(LEN(B7)-C7*2-5<0,"",MID(B7,LEN(B7)-3,2))&IF(LEN(B7)-C7*2-7<0,"",MID(B7,LEN(B7)-5,2))&IF(LEN(B7)-C7*2-9<0,"",MID(B7,LEN(B7)-7,2))&IF(LEN(B7)-C7*2-11<0,"",MID(B7,LEN(B7)-9,2)),公式的思路是逐字節(jié)取出data list 原始值中表示起始LCN 的十六進(jìn)制值,并按正常十六進(jìn)制數(shù)的順序排列(將小頭位序表示的十六進(jìn)制顛倒順序);J7 是data list 起始LCN 的十進(jìn)制值,公式為:=HEX2DEC(I7);K7 計(jì)算data list 的實(shí)際LCN值,對于第1項(xiàng)data list而言,該值與前列完全相同。

      ⑵第二項(xiàng)data list的計(jì)算

      G8,I8 單元格的計(jì)算,填充復(fù)制第1 項(xiàng)data list 的公式即可;H8 表示起始LCN 加減標(biāo)志,公式為:=LEFT(HEX2BIN(RIGHT(B8,2),8),1),公式取出data list 最右邊的十六進(jìn)制數(shù),將其轉(zhuǎn)換為八位二進(jìn)制數(shù),并取出其最高位;J8 計(jì)算起始LCN 的值,公式為:=IF(H8="0",HEX2DEC(I8),IF(G8="1",255-HEX2DEC(I8),IF(G8="2",65535-HEX2DEC(I8),IF(G8="3",16777215-HEX2DEC(I8),4294967295-HEX2DEC(I8))))+1),思路是如果加減標(biāo)志為0,此數(shù)為前列十六進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù)的值;如果是1,計(jì)算前列十六進(jìn)制數(shù)補(bǔ)碼加1后得到的十六進(jìn)制數(shù)對應(yīng)的十進(jìn)制值;K8計(jì)算數(shù)據(jù)塊的實(shí)際LCN 值,公式為:=IF(H8="0",J8,-J8)+K7,意思是若加減標(biāo)志為0,則data list 的LCN 值為上行data list 的LCN值加上前列的LCN值;否則兩者相減。

      ⑶后續(xù)data list的計(jì)算

      后續(xù)data list的計(jì)算,填充復(fù)制第二項(xiàng)data list的公式即可。

      2 NTFS文件恢復(fù)過程中常見問題的解決或說明

      2.1 獲得文件名的Unicode編碼值

      對于需要被恢復(fù)的文件,其文件名或文件名的一部分往往能被文件創(chuàng)建者記憶。因此,利用文件名恢復(fù)被刪除文件是數(shù)據(jù)恢復(fù)的重要方法。在NTFS 文件系統(tǒng)中,文件名以Unicode 編碼存儲。對于英文和數(shù)字的文件名,Unicode 編碼值與ASCII 碼相同;但對于漢字,則需要使用專門的字符轉(zhuǎn)換軟件將其轉(zhuǎn)換為對應(yīng)的Unicode 編碼,如缺少相應(yīng)的字符轉(zhuǎn)換軟件,可將文件名輸入記事本文件,再將該文件另存為編碼為“UTF-16LE”的文件,在Winhex 中打開該文件,并將字符集調(diào)整為“UTF-16”,即可查看對應(yīng)漢字在NTFS文件系統(tǒng)中存儲的十六進(jìn)制值。選中這些十六進(jìn)制值,右擊鼠標(biāo),選擇“編輯”→“復(fù)制選塊”→“十六進(jìn)制值”可以復(fù)制文件名的十六進(jìn)制值,以備后續(xù)搜索之用。

      2.2 定義選塊

      文件恢復(fù)中,經(jīng)常需要定義選塊。在文件選塊的定義環(huán)節(jié),需要填入數(shù)據(jù)塊存儲開始位置和結(jié)束位置。一種做法是:根據(jù)計(jì)算的實(shí)際LCN 值跳至該簇號所在扇區(qū),然后將“選塊起始位置”設(shè)置為“當(dāng)前位置”,在“文件大小”項(xiàng)中填入數(shù)據(jù)塊大小值,此時需注意使Winhex 的偏移值與“文件大小”項(xiàng)中填入的數(shù)字采用相同進(jìn)制。當(dāng)進(jìn)制不同時,單擊偏移列可改變進(jìn)制。

      2.3 文件合并

      被刪除的文件尤其是大文件,在磁盤中往往存儲在多個位置,也就是有多個簇流(data list)。當(dāng)分別對簇流定義了選塊并復(fù)制它們至新文件中后,還需要將其“組裝起來”??墒褂谩肮ぞ摺薄拔募ぞ摺薄拔募喜ⅰ泵钸M(jìn)行操作,此時,需特別注意合并文件的順序。

      3 文件從回收站中刪除后的恢復(fù)

      隨著硬件技術(shù)的發(fā)展,現(xiàn)在的硬盤一般容量巨大,在搜索文件名的過程中,如果進(jìn)行全磁盤搜索,將浪費(fèi)大量的時間。在實(shí)際工作中,時間成本是選用工作方法的決定因素之一,通過文件名搜索恢復(fù)NTFS文件概莫能外。$MFT 是NTFS 文件系統(tǒng)的核心文件[3],$LogFile是日志文件,兩個文件占用的空間不大,包含的信息準(zhǔn)確可靠。因此,通過搜索文件名恢復(fù)從回收站中刪除的文件,應(yīng)首先搜索$MFT,再搜索$LogFile,如果從這兩個文件均未能找到有用信息,再進(jìn)行全磁盤搜索。

      3.1 搜索$MFT

      $MFT 是NTFS 文件系統(tǒng)的主文件表,它由多個MFT 項(xiàng)(也稱為文件記錄)組成,每個MFT 項(xiàng)占用1024 個字節(jié)的空間[4]。系統(tǒng)通過$MFT 來確定文件在磁盤中的位置以及文件的其他屬性。搜索$MFT,可得到文件的一些關(guān)鍵信息。根據(jù)實(shí)踐,使用搜索$MFT 的方法來恢復(fù)數(shù)據(jù)是恢復(fù)從回收站中刪除文件最節(jié)省時間且最有效的方法,使用該方法實(shí)現(xiàn)數(shù)據(jù)恢復(fù)步驟如下。

      ⑴參照前文提供的方法獲得文件名或部分文件名Unicode編碼的十六進(jìn)制值。

      ⑵在Winhex 中打開被刪除文件所在的磁盤,在目錄瀏覽區(qū)選中$MFT,并將其復(fù)制至除被刪除文件所在磁盤外的其他磁盤。

      ⑶打開$MFT,使用“專業(yè)工具”→“將鏡像文件轉(zhuǎn)換為磁盤”命令將其轉(zhuǎn)換為磁盤(目的是使文件外觀與磁盤一致,便于查看數(shù)據(jù))。

      ⑷搜索文件名的十六進(jìn)制值,單擊文件名稱為“$Bitmap”、“$Corrupt”、“icudtl.dat”和“卷殘留空間”的搜索結(jié)果項(xiàng)所在扇區(qū),查找80H 屬性值中data run 部分。實(shí)踐證明,主要是但不限于這些結(jié)果項(xiàng)所在扇區(qū)記錄了被刪除文件的關(guān)鍵信息。

      3.2 搜索$LogFile

      NTFS 使用$LogFile 來進(jìn)行事務(wù)管理,用于保證NTFS的可恢復(fù)性,當(dāng)文件被寫入/修改時,系統(tǒng)要做兩件事,一是寫入/修改文件本身的數(shù)據(jù),二是更新和文件系統(tǒng)有關(guān)的數(shù)據(jù)(如文件狀態(tài)、文件修改時間)等。因此,可搜索$LogFile 文件來尋找被刪除文件的蛛絲馬跡,步驟如下。

      ⑴打開$LogFile,搜索文件名的十六進(jìn)制值。

      ⑵單擊搜索結(jié)果項(xiàng),進(jìn)入對應(yīng)扇區(qū)。在這些扇區(qū)中尋找有用信息。這些有用信息包括但不限于:緊跟文件名后的80H 屬性中的的data run 信息;文件名第一個字符往上數(shù)五行(NTFS 文件30H 屬性的結(jié)構(gòu)決定)的文件記錄參考號信息。

      ⑶如找到的是data run 信息,計(jì)算其起始簇號和數(shù)據(jù)塊大小,跳至相應(yīng)簇,定義數(shù)據(jù)塊,復(fù)制數(shù)據(jù)塊至新文件,恢復(fù)該文件(如有多個data list,需復(fù)制出多個新文件后合并文件);如找到的是記錄參考號,則參照前文提供的方法計(jì)算文件記錄所在扇區(qū),跳至該扇區(qū),尋找文件的data run 信息,重復(fù)前面的步驟,恢復(fù)文件。

      需要說明的是:$LogFile 中,一般能搜索到關(guān)于該文件的多條信息,這些信息有的有用,有的無用,有的甚至錯誤,但一般至少有一條有用信息。可逐個試驗(yàn)這些信息,識別出有用信息,淘汰無用信息,逐漸積累經(jīng)驗(yàn),成為數(shù)據(jù)恢復(fù)高手。

      3.3 搜索整個磁盤

      搜索全磁盤的結(jié)果項(xiàng)中,最容易找到有用信息的項(xiàng)是文件名稱為“$MFT”的行,其次是“已刪除的分區(qū)”,再其次是$LogFile中提供的信息。

      ⑴當(dāng)搜索結(jié)果中有多個文件名稱為“$MFT”的項(xiàng)時,這些項(xiàng)指向的扇區(qū)至少有兩種可能性,一種是指向文件記錄,可直接從其中找到data run 信息,恢復(fù)文件。另一種是目錄信息,此時,單擊文件名的第一個字符,往上數(shù)五行,一般可找到文件記錄參考號,若無法找到data run 和記錄參考號,可查看有無A0H 屬性,根據(jù)A0H屬性中的data run信息,找到該文件父目錄所在扇區(qū),再尋找被刪除文件的“痕跡”,也有解決問題的可能性。

      ⑵搜索結(jié)果項(xiàng)為“已刪除的分區(qū)”中,有一個陌生的文件名,這個文件名是“$R+6 個隨機(jī)字符”,隨機(jī)字符由系統(tǒng)自動產(chǎn)生。Windows 操作系統(tǒng)中,回收站是一種特殊的文件夾,它位于邏輯盤的根目錄下,名稱為RECYCLER或$RECYCLE.BIN(不同的操作系統(tǒng)版本有不同的名稱),正常情況下其屬性被設(shè)置為隱藏狀態(tài),可通過設(shè)置顯示菜單中的顯示項(xiàng)目將其顯示出來。當(dāng)用戶刪除某文件后,存儲該文件的磁盤空間并沒有真正被釋放,而是生成了以“S-1-5-21”開頭的文件夾,還在其下建立了兩個文件。比如windows7、10 操作系統(tǒng)會在其下建立以“$I+6 個隨機(jī)字符”和“$R+6個隨機(jī)字符”為文件名,擴(kuò)展名與原文件相同的兩個文件(兩個文件的6 個隨機(jī)字符完全相同)?!?I+6個隨機(jī)字符”文件存儲被刪除文件的原始信息(如路徑、文件名、刪除日期和時間等),“$R+6 個隨機(jī)字符”文件存儲被刪除文件的內(nèi)容,該文件與被刪除文件的記錄號相同[5]。正因?yàn)榛厥照镜倪@一機(jī)理,可根據(jù)上述搜索結(jié)果尋找被刪除文件的信息,方法是搜索“$I+6個隨機(jī)字符”獲得文件的記錄參考號信息,再根據(jù)該信息,找到80H或A0H屬性中的數(shù)據(jù)流,恢復(fù)文件。

      ⑶當(dāng)搜索結(jié)果中文件名稱為“$LogFile”的項(xiàng)時,查找被刪除文件有用信息的方法與前述內(nèi)容完全一致。

      4 按shift+delete組合鍵刪除文件后的恢復(fù)

      4.1 直接復(fù)制文件

      在Winhex 中打開被刪除文件所在的磁盤,在“磁盤快照選項(xiàng)”對話框中,勾選“使用包含刪除的文件”選項(xiàng),此時在目錄瀏覽器中,當(dāng)文件有可能被快速恢復(fù)時,文件前有標(biāo)志,右擊該文件,從彈出的菜單中選擇“恢復(fù)/復(fù)制”可將其迅速恢復(fù)。需要說明的是,通過這種方法恢復(fù)的文件有一定概率無法正確打開,原因可能是存儲該文檔的部分扇區(qū)已用作它途。

      4.2 其他方法

      這些方法包括搜索$MFT、$LogFile 以及整個磁盤,其操作與恢復(fù)回收站中刪除的文件大同小異(區(qū)別是全磁盤搜索不會找到文件名為“$R+6 個隨機(jī)字符”的文件),相關(guān)內(nèi)容參考前文,此處不再贅述。

      5 遠(yuǎn)程N(yùn)TFS文件恢復(fù)

      現(xiàn)實(shí)生活中,部分NTFS 文件能夠進(jìn)行遠(yuǎn)程恢復(fù),滿足下述條件的計(jì)算機(jī)成功實(shí)現(xiàn)遠(yuǎn)程文件恢復(fù)的可能性大:

      ●文件所在電腦有至少兩個分區(qū)。

      ●文件所有者愿意且有能力按要求安裝遠(yuǎn)程控制軟件。

      遠(yuǎn)程數(shù)據(jù)恢復(fù)必須解決“遠(yuǎn)程”問題。目前,有多款遠(yuǎn)程控制軟件,如向日葵、TeamViewer 等。以向日葵遠(yuǎn)程控制軟件為例,需要數(shù)據(jù)所有者下載向日葵客戶端軟件,存儲到除被刪除文件所在分區(qū)以外的其他分區(qū),并打開該軟件,向數(shù)據(jù)恢復(fù)人員提供機(jī)器識別碼,數(shù)據(jù)恢復(fù)人員根據(jù)該碼連接數(shù)據(jù)所有者計(jì)算機(jī),在其機(jī)器上安裝Winhex或其他數(shù)據(jù)恢復(fù)軟件,進(jìn)行遠(yuǎn)程數(shù)據(jù)恢復(fù)。

      6 結(jié)論

      使用文件名搜索對被刪除文件進(jìn)行底層恢復(fù)有多種不同的方法,這些方法耗時不同復(fù)雜度各異,在實(shí)踐中應(yīng)首先選擇時間成本低,操作方便的方法?;謴?fù)從回收站中的文件優(yōu)先選用搜索$MFT 的方法,而恢復(fù)按shift+delete組合鍵刪除的文件宜采用直接復(fù)制法。

      猜你喜歡
      文件名回收站磁盤
      能量回收站
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      右鍵調(diào)用多重更名更方便
      電腦愛好者(2019年9期)2019-10-30 03:43:29
      Excel輕松提取文件名
      神奇裁縫最省布
      修改磁盤屬性
      磁盤組群組及iSCSI Target設(shè)置
      創(chuàng)建VSAN群集
      不讓長文件名成為“絆腳石”
      電腦迷(2014年8期)2014-04-29 07:37:40
      舊衣回收
      嘉荫县| 庐江县| 吉安县| 汉川市| 大关县| 仙游县| 阜平县| 石棉县| 闸北区| 通河县| 安顺市| 松滋市| 庆云县| 图们市| 景德镇市| 黄冈市| 五常市| 丘北县| 阳江市| 昭苏县| 惠东县| 平昌县| 廊坊市| 嘉黎县| 项城市| 大邑县| 茂名市| 牡丹江市| 开鲁县| 垫江县| 安溪县| 哈巴河县| 华坪县| 周宁县| 宜兰县| 陆丰市| 滕州市| 洱源县| 肇源县| 姜堰市| 安乡县|