999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于文件名搜索的NTFS文件恢復方法研究

2023-03-21 02:22:12吳淑惠
計算機時代 2023年3期
關鍵詞:信息方法

吳淑惠

(北京市工貿技師學院數媒系,北京 100097)

0 引言

NTFS(New Technology File System)是Windows NT內核的系列操作系統支持的、一個特別為網絡和磁盤配額、文件加密等管理安全特性設計的磁盤格式,它提供長文件名、數據保護和恢復,能通過目錄和文件許可實現安全性,并支持分區跨越[1],是當前應用最為廣泛的文件系統。

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

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

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

1 文件存儲位置與數據塊大小的計算

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

1.1 磁盤基本情況

在數據恢復中,$MFT所在扇區至關重要。Winhex可以自動識別$MFT 所在扇區,單擊目錄瀏覽區$MFT項可進入該扇區,也可通過查看該分區0 扇區的DBR模板獲得$MFT 開始簇號再乘以每簇扇區數得到$MFT所在扇區號。

1.2 文件記錄所在扇區

數據恢復中,經常需要通過記錄參考號找到文件記錄所在扇區,實際計算時可通過將記錄參考號轉換為十進制數乘以2,再加上$MFT所在扇區號獲得。

1.3 data run的計算

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

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

圖1 文件存儲位置與數據塊大小的計算

1.3.1 數據塊大小的計算

表格C~F 列計算數據塊的大小,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”。后續行填充復制上述公式即可。

1.3.2 文件存儲位置的計算

表格中G~K列計算數據塊的存儲位置。

⑴第一項data list的計算

G7 計算起始LCN 的位數,公式為:=LEFT(B7,1);H7表示起始LCN加減標志,對于第1個data list,直接填入“0”;I7 計算data list 起始LCN 的十六進制值,公式為=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)),公式的思路是逐字節取出data list 原始值中表示起始LCN 的十六進制值,并按正常十六進制數的順序排列(將小頭位序表示的十六進制顛倒順序);J7 是data list 起始LCN 的十進制值,公式為:=HEX2DEC(I7);K7 計算data list 的實際LCN值,對于第1項data list而言,該值與前列完全相同。

⑵第二項data list的計算

G8,I8 單元格的計算,填充復制第1 項data list 的公式即可;H8 表示起始LCN 加減標志,公式為:=LEFT(HEX2BIN(RIGHT(B8,2),8),1),公式取出data list 最右邊的十六進制數,將其轉換為八位二進制數,并取出其最高位;J8 計算起始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),思路是如果加減標志為0,此數為前列十六進制轉換為十進制數的值;如果是1,計算前列十六進制數補碼加1后得到的十六進制數對應的十進制值;K8計算數據塊的實際LCN 值,公式為:=IF(H8="0",J8,-J8)+K7,意思是若加減標志為0,則data list 的LCN 值為上行data list 的LCN值加上前列的LCN值;否則兩者相減。

⑶后續data list的計算

后續data list的計算,填充復制第二項data list的公式即可。

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

2.1 獲得文件名的Unicode編碼值

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

2.2 定義選塊

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

2.3 文件合并

被刪除的文件尤其是大文件,在磁盤中往往存儲在多個位置,也就是有多個簇流(data list)。當分別對簇流定義了選塊并復制它們至新文件中后,還需要將其“組裝起來”。可使用“工具”→“文件工具”→“文件合并”命令進行操作,此時,需特別注意合并文件的順序。

3 文件從回收站中刪除后的恢復

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

3.1 搜索$MFT

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

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

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

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

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

3.2 搜索$LogFile

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

⑴打開$LogFile,搜索文件名的十六進制值。

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

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

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

3.3 搜索整個磁盤

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

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

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

⑶當搜索結果中文件名稱為“$LogFile”的項時,查找被刪除文件有用信息的方法與前述內容完全一致。

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

4.1 直接復制文件

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

4.2 其他方法

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

5 遠程NTFS文件恢復

現實生活中,部分NTFS 文件能夠進行遠程恢復,滿足下述條件的計算機成功實現遠程文件恢復的可能性大:

●文件所在電腦有至少兩個分區。

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

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

6 結論

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

猜你喜歡
信息方法
學習方法
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
健康信息(九則)
祝您健康(1987年2期)1987-12-30 09:52:28
主站蜘蛛池模板: 国产丝袜第一页| 亚洲无线国产观看| 亚洲福利片无码最新在线播放| 国产成年女人特黄特色毛片免 | 久草视频精品| 国产本道久久一区二区三区| 成人免费视频一区| 国产免费怡红院视频| 9999在线视频| 波多野结衣的av一区二区三区| 亚洲电影天堂在线国语对白| 91蝌蚪视频在线观看| 又黄又湿又爽的视频| 亚洲精品你懂的| 国产成人亚洲无吗淙合青草| 天天干天天色综合网| 97国产在线视频| 无码免费视频| 国内丰满少妇猛烈精品播| 国产在线观看高清不卡| 国产在线拍偷自揄观看视频网站| 一级毛片无毒不卡直接观看| 久久动漫精品| 五月婷婷精品| 色综合久久88| 日韩中文欧美| 亚洲中文无码av永久伊人| 亚洲女同欧美在线| 亚洲无卡视频| 日韩天堂在线观看| 欧美区一区二区三| 成人免费一区二区三区| 澳门av无码| 国产理论最新国产精品视频| 一区二区三区国产| 2019国产在线| 国产综合在线观看视频| 综合成人国产| 伊在人亚洲香蕉精品播放| 青青青草国产| 精品福利国产| 国产成人免费观看在线视频| 国产第一页免费浮力影院| 黄色网站在线观看无码| 国产精品美人久久久久久AV| 91精品国产一区| 亚洲 欧美 日韩综合一区| 久久精品中文字幕免费| 国产在线八区| 欧美一级特黄aaaaaa在线看片| 亚洲第一黄色网址| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 欧美激情视频一区| 免费a在线观看播放| 凹凸精品免费精品视频| 91青青在线视频| 国产视频 第一页| 久久频这里精品99香蕉久网址| 久99久热只有精品国产15| 国产精品亚洲专区一区| 精品久久久无码专区中文字幕| 九九热视频在线免费观看| 2024av在线无码中文最新| 欧美激情福利| 亚洲一区第一页| 亚洲成人动漫在线| 99国产精品免费观看视频| 九月婷婷亚洲综合在线| 欧洲欧美人成免费全部视频| 久久永久视频| www.亚洲一区| 青青青伊人色综合久久| 久久永久视频| 国产在线91在线电影| 18禁黄无遮挡网站| 午夜国产精品视频黄| 久久国产成人精品国产成人亚洲 | 国产激情无码一区二区APP| 91日本在线观看亚洲精品| 亚洲无码91视频| 成人韩免费网站| 亚洲精品欧美日本中文字幕|