U盤,全稱“USB閃存盤”,英文名“USB flash disk”。它是一個USB接口的無需物理驅(qū)動器的微型高容量移動存儲產(chǎn)品,可以通過USB接口與電腦連接,實(shí)現(xiàn)即插即用,用于存儲數(shù)據(jù),方便攜帶。這里說到了U盤,那U盤是哪個國家發(fā)明的那?美國?我想大多數(shù)人可能一想到這些電子產(chǎn)品就想到了美國這個發(fā)達(dá)的國家了。其實(shí)U盤是中國的朗科科技發(fā)明的。對你沒有聽錯,U盤是中國人發(fā)明的!
U盤在方便存儲數(shù)據(jù)的同時就難免出現(xiàn)數(shù)據(jù)丟失的情況,U盤經(jīng)常遇到的故障:病毒破壞數(shù)據(jù)丟失、U盤提示是否格式化、U盤誤刪除文件、誤格式化等。這些是數(shù)據(jù)丟失常見的幾種故障,下面就詳細(xì)講解一下這幾種故障。
常見的是U盤的文件夾全部變成EXE可執(zhí)行文件,其實(shí)原文件并沒有被改成EXE,只是被隱藏起來而已,那些后面有.exe的文件夾并不是文件夾,而是病毒創(chuàng)建的一個同名的應(yīng)用程序文件,只不過為了掩飾而把圖標(biāo)改成和文件夾圖標(biāo)一樣。當(dāng)你誤以為這是文件夾而去點(diǎn)的時候這是就會把這個病毒給激活了。其實(shí)這種掩飾方式?jīng)]有什么技術(shù)含量,太容易被揭穿了。現(xiàn)在要做的就是把隱藏的文件顯示出來,然后把病毒生成的EXE程序刪除就行了。如何顯示隱藏呢?這里有一條不錯的去除文件隱藏屬性的命令,WIN+R快捷鍵打開運(yùn)行,框輸入CMD之后回車打開命令提示符然后輸入attrib -s -h F:* /s /d命令,命令中的F為U盤的盤符,這樣U盤中的隱藏文件夾就顯示出來了,你也可以從我的電腦那里,點(diǎn)工具欄中的工具→文件夾選項(xiàng)→顯示所有文件,但有的時候選中了顯示所有文件夾但是還是沒有顯示出來隱藏文件,這是為什么呢?你可以再次打開看看,是不是真的選中了,發(fā)現(xiàn)明明選中了顯示所有文件夾但再次打開的時候卻是沒有選中,這是病毒通過修改系統(tǒng)注冊表搗的鬼,只需WIN+R快捷鍵打開運(yùn)行框輸入“regedit”點(diǎn)擊確定打開注冊表編輯器,依次進(jìn)入HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows->Current Version->Explorer->Advanced->Folder->Hidden->SHOWALL將里面的CheckedValue鍵 刪 除,新建一個Dword值,命名為CheckedValue,鍵值改為為1就行了。如果想圖省事可以直接用一款叫做金山U盤專殺的工具,這個款工具我用過,針對這種U盤病毒查殺效果還是不錯的。
這 是 因 為DBR(DOS BOOT RECORD,DOS 引導(dǎo)記錄)被破壞導(dǎo)致的,說到DBR就不得不提一些關(guān)關(guān)于文件系統(tǒng)結(jié)構(gòu)的知識了,一般常見的文件系統(tǒng)結(jié)構(gòu)有FAT32、NTFS。U 盤 一 般是FAT32結(jié)構(gòu)的文件系統(tǒng),F(xiàn)AT32文件系統(tǒng)由DBR及其保留扇區(qū)、FAT1、FAT2、DATA區(qū)四個部分組成其結(jié)構(gòu)。
DBR及保留扇區(qū):DBR全稱DOS BOOT RECORD含義是DOS引導(dǎo)記錄
FAT1:FAT全稱為File Allocation Table,含義是文件分配表
FAT2:FAT32文件系統(tǒng)的第二個文件分配表,同時也是FAT1的備份。
DATA:DATA 是 FAT32文件系統(tǒng)的數(shù)據(jù)區(qū),其實(shí)數(shù)據(jù)恢復(fù)就是恢復(fù)這里面的數(shù)據(jù),DATA區(qū)也包含了目錄區(qū)。
U盤打開提示是否格式化的主要原因是DBR(DOS BOOT RECORD,DOS引 導(dǎo)記錄)被破壞導(dǎo)致的,那如何恢復(fù)被破壞的DBR,從結(jié)構(gòu)圖中可以看到DBR有個副本,只要找到這個DBR副本的位置,然后覆蓋一下被損壞的DBR就能成功修復(fù)DBR了。下面就以一個實(shí)例演示一下,當(dāng)我打開U盤的時候出現(xiàn)是否格式化?
首先用WinHex這款軟件打開U盤(WinHex是一個專門用來對付各種日常緊急情況的小工具。它可以用來檢查和修復(fù)各種文件、恢復(fù)刪除文件、硬盤損壞造成的數(shù)據(jù)丟失等),此時可以看到DBR扇區(qū)已經(jīng)被破壞如圖1所示。
圖1中DBR中的跳轉(zhuǎn)指令,OEM代碼,BPB和部分引導(dǎo)都被清零了。這時可以往這個DBR所在扇區(qū)下數(shù)6個扇區(qū),這個扇區(qū)就是DBR的副本,選中這個扇區(qū)的第一個字節(jié),然后按快捷鍵ALT+1,然后選中這個扇區(qū)的最后一個字節(jié),按快捷鍵ALT+2,這時這個扇區(qū)已經(jīng)被選中,按快捷鍵Ctrl+C復(fù)制,然后轉(zhuǎn)到那個損壞的DBR扇區(qū),按快捷鍵Ctrl+B寫入扇區(qū),這樣就修復(fù)好了DBR扇區(qū),按Ctrl+S保存,然后重新插拔U盤發(fā)現(xiàn)U盤可以正常打開,數(shù)據(jù)什么都完好無損。

圖1 數(shù)據(jù)已經(jīng)被篡改
誤刪除了U盤里面的文件這種情況也時有發(fā)生,當(dāng)你發(fā)現(xiàn)U盤里面的文件誤刪除之后,正確的做法是不要再往里面寫入東西了,以防數(shù)據(jù)被二次覆蓋,也不要打開U盤里面的文件,因?yàn)橛行┪募淮蜷_就會在同目錄下面生成一個臨時文件,這個生成的臨時文件很有可能覆蓋被刪除文件所在的位置,到那時候后悔也沒用了。下面以FAT32格式的U盤為例子講一下U盤誤刪除之后的恢復(fù)方法。
首先介紹文件在FAT32文件系統(tǒng)的存儲方式,我的U盤里面有一個1.jpg的圖片文件和一個TEST文件夾(文件夾里面存著一個1.doc的文件),用WINHEX打開U盤,點(diǎn)擊右面的小箭頭打開下拉菜單然后選擇根目錄,跳轉(zhuǎn)到根目錄項(xiàng):跳轉(zhuǎn)到根目錄項(xiàng)之后可以看到有兩個目錄項(xiàng):一個是1.jpg的文件目錄項(xiàng),一個是TEST文件夾的目錄項(xiàng)。
說到目錄項(xiàng)那就詳細(xì)的說一下,F(xiàn)AT32文件系統(tǒng)有根目錄項(xiàng)和子目錄項(xiàng),根目錄項(xiàng)列出的是U盤根目錄下的文件和文件夾目錄項(xiàng),如果是一個文件那么這個目錄項(xiàng)中的起始簇號直接就指向了文件在數(shù)據(jù)區(qū)存放的位置,要是一個文件夾目錄項(xiàng)那么這個目錄項(xiàng)是指向這個文件夾的子目錄項(xiàng),子目錄項(xiàng)列出了這個文件夾里面的文件目錄,然后才指向數(shù)據(jù)區(qū)域的位置。FAT32短文件目錄項(xiàng)的含義,如圖2所示。
了解過FAT32短文件目錄項(xiàng)的含義之后,接下來找到1.jpg文件目錄項(xiàng)中文件的起始簇號,可以看到1.jpg這個文件的起始簇號的高位為00 00 低位為 03 00所以這個文件的起始簇號為00000003也就是3號簇(為什么是00000003而不是00000300呢?這是由于Windows系統(tǒng)是運(yùn)行在x86架構(gòu)之上的,所以存儲時是按低位到高位存儲的),按Ctrl+G快捷鍵打開轉(zhuǎn)到扇區(qū)的對話框,然后在里面簇的那一欄輸入簇號3,點(diǎn)擊確定就跳轉(zhuǎn)到了3號簇的起始位置(也就是1.jpg文件的起始位置)。知道了起始位置那結(jié)束位置如何得知呢?
文件的起始位置加上文件的大小也就是文件的結(jié)束位置了,文件的大小可以通過1.jpg目錄項(xiàng)最后四個字節(jié)得出,1.jpg目錄項(xiàng)的最后四個字節(jié)是000189BF,轉(zhuǎn)換成十進(jìn)制后為100799字節(jié)。右鍵1.jpg打開屬性:可以看到1.jpg的大小正如我們所算的那樣。下面我們從1.jpg文件起始位開始向下選擇100799字節(jié),具體的操作步驟是:用WINHEX跳轉(zhuǎn)到文件的起始位置,在起始位置按Alt+1快捷鍵選中起始位置,然后在點(diǎn)Atl+G快捷鍵打開轉(zhuǎn)到偏移地址的對話框,選中當(dāng)前位置,然后在新位置輸入16進(jìn)制的文件大小,如圖3所示:點(diǎn)擊確定跳轉(zhuǎn)到結(jié)束位置,按Alt+2選中結(jié)束位置,點(diǎn)擊Ctrl+Shift+N這個快捷鍵把文件保存為一個.jpg格式的文件,例如:2.jpg。這時打開保存的2.jpg,發(fā)現(xiàn)和1.jpg一樣,這說明了這段就是1.jpg 的數(shù)據(jù)。

圖2 目錄項(xiàng)含義

圖3 輸入文件大小
上面詳細(xì)說了一下1.jpg文件在FAT32文件系統(tǒng)中的存儲方式,下面我們把1.jpg這個文件刪除,看看都做了哪些操作。首先把U盤根目錄下面的1.jpg文件刪除,然后用WINHEX跳轉(zhuǎn)到U盤的根目錄項(xiàng),可以同上面沒刪除之前相比較,只是文件名的首字節(jié)標(biāo)志成了E5。
這里其實(shí)起始簇號也被清零了,只是這個文件本身起始簇號高位就是零所以沒有體現(xiàn)出來。我們可以看出除了文件名和起始高位簇號有變化外根目錄項(xiàng)的其他值沒有變化。跳轉(zhuǎn) 到 FAT(File Allocation Table)文件分配表發(fā)現(xiàn)相應(yīng)的簇號也被清零,這里注意一下文中提到的數(shù)據(jù)恢復(fù)是建立在FAT表里面的簇號是連續(xù)的情況下的,如果簇號不連續(xù),那么恢復(fù)出來的數(shù)據(jù)是不完整的,F(xiàn)AT在這里不做過多介紹了。
用WINHEX在跳轉(zhuǎn)到起始簇號位置發(fā)現(xiàn)雖然文件被刪除了但是最重要的數(shù)據(jù)區(qū)并沒有刪除。我們可以通過起始簇號和文件大小來把數(shù)據(jù)恢復(fù)出來,首先跳轉(zhuǎn)到1.jpg數(shù)據(jù)的起始簇,然后向下選擇和文件大小一樣的字節(jié)數(shù)。最后另存成.jpg格式的文件,這樣數(shù)據(jù)就完整恢復(fù)出來了。
1.文件目錄項(xiàng)中的文件名首字節(jié)標(biāo)志成E5。
2.文件目錄項(xiàng)中的起始簇號高位清零。
3.FAT中相應(yīng)的簇號清零。
4.數(shù)據(jù)區(qū)沒有任何變化。
1.如果文件在數(shù)據(jù)區(qū)中存放的位置比較靠后,文件的起始簇就會很大,這是高位字節(jié)也就不是0了,如果刪除了高位起始簇號不為0的文件那是很難恢復(fù)的,因?yàn)镕AT32下數(shù)據(jù)刪除是把文件起始簇號高位清零的,這樣就導(dǎo)致很難找到文件起始簇號的位置,所以這樣的文件就很難恢復(fù)了。
2.由于FAT32文件系統(tǒng)下文件刪除后,其FAT表中對應(yīng)的簇號也被清零,如果文件有碎片,也就是數(shù)據(jù)不是連續(xù)存放的,這種刪除的文件是很難恢復(fù)的。
3.文件刪除后,雖然文件的內(nèi)容并不會被清除,但其所占用的簇會釋放,這些簇就很容易被其他的文件所占用,這樣數(shù)據(jù)就會發(fā)生覆蓋,這樣的被覆蓋的數(shù)據(jù)也就沒有辦法恢復(fù)了,這也是我上面為什么說U盤里面的數(shù)據(jù)誤刪后,就不要在存放數(shù)據(jù)的原因了。
還和上面一樣U盤里面存放一個1.jpg和一個TEST的文件夾(文件夾里面有個1.doc的文檔),這回直接格式化U盤,格式化之后用WINHEX查看U盤,發(fā)現(xiàn)U盤的DBR重寫,F(xiàn)AT1表和FAT2表也被清零,根目錄被清空,也就是根目錄下面的那個1.jpg這個文件的目錄項(xiàng)沒有了,這樣這個1.jpg就很難恢復(fù)了。WINHEX里面有個通過文件的頭結(jié)構(gòu)特征和尾結(jié)構(gòu)特征來在數(shù)據(jù)區(qū)把所有的符合條件的文件提取出來,可以試試這個功能來恢復(fù)根目錄清空導(dǎo)致文件丟失的文件。

圖4 搜索目錄項(xiàng)
雖然根目錄項(xiàng)被清空了,但是我們發(fā)現(xiàn)子目錄項(xiàng)并沒有清空,所以說TEST下面的文件還是可以恢復(fù)的,可以在WINHEX下通過Ctrl+Alt+X打開查找16進(jìn)制數(shù)值對話框,然后在里面輸入偏移計(jì)算值512=0搜索值,輸入2E20202020點(diǎn)確定開始搜索子目錄項(xiàng),如圖4所示:找到子目錄項(xiàng)之后,然后通過文件的起始簇號和文件大小能把那些沒有碎片的文件恢復(fù)出來。
1.重寫DBR。
2.FAT1和FAT2清零。
3.根目錄項(xiàng)清零。
FAT32文件系統(tǒng)格式化之后,F(xiàn)AT表的簇鏈全部清零,根目錄區(qū)中的文件目錄項(xiàng)全部清零,所以根目錄下面的文件也就很難恢復(fù)了,因?yàn)闆]有目錄項(xiàng)就無法知道這些文件存放的地址。
從上面的講解中可以知道數(shù)據(jù)的恢復(fù)并不是百分之百能成功的,所以養(yǎng)成一個好的習(xí)慣是很重要的,例如:U盤根目錄下面不存放文件,因?yàn)楦袷交骍盤根目錄區(qū)的目錄項(xiàng)全部清空,這樣數(shù)據(jù)很難再次恢復(fù)出來了,如果放到了子目錄會使損失降小。正如有本書說的那樣:最好的數(shù)據(jù)恢復(fù)就是備份!備份!再備份!只有備份才是王道。所以說養(yǎng)成經(jīng)常備份的習(xí)慣對數(shù)據(jù)恢復(fù)是至關(guān)重要的。