FAT16檔案系統手工資料恢複分析

來源:互聯網
上載者:User

根目錄項(Root entries)為512,每個目錄項佔用32位元組,所以FDT(File Directory Table)共佔用512*32/512=32個扇區。這512個目錄項是根目錄下所有登記項的總和,包括卷標、子目錄和檔案。

公式

精確方法:FAT扇區數 = (扇區總數+2*每簇扇區數 – 32 – 保留扇區數)/(256*每簇扇區數)

例:FAT扇區數 = (3915713+128-32)/(256*64)= 238.99029541015625=239扇區

粗略方法:FAT扇區數:FAT用兩個位元組記錄一個簇。

例:FAT扇區數= 總簇數*2/512 = (3915713 /64)/256 = 238.99615478515625 = 239扇區

FAT16檔案系統結構

一個檔案或子目錄在磁碟上的儲存位置(邏輯扇區號)為:

1+2*FAT扇區數+FDT扇區數+(起始簇號-2)*每簇扇區數

解釋:“1”代表DBR扇區,“起始簇號-2”代表使用者檔案從2號簇開始計算的。這樣的話,第一個檔案的起點(第2簇)緊隨FDT。

DBR引導

DBR與分區的位置關係

每個分區的DBR都位於此分區的第一個扇區。主要磁碟分割DBR由MBR來制定,擴充分區由虛擬MBR指定。

DBR與分區表的位置關係

第一個主要磁碟分割的DBR一般距離MBR的扇區個數為62個(MBR=0, DBR=63),由於每個擴充分區都有一個虛擬MBR,所以每個擴充分區DBR都距離虛擬MBR 62個扇區。

這裡再回憶下分區錶鏈的讀取方法:主要磁碟分割直接由MBR表項中的“本分區之前扇區數”來定位; 擴充分區要加上一個位移,即MBR中制定的 “擴充分區之前扇區數”,而且此位移在所有的虛擬MBR中都不變(這點有點與想當然不一樣~),記住就可以了。

FAT(File Associate Table)

FAT緊接著DBR扇區存放。磁碟上的每個簇在FAT中有且只有一個登記項,表項值有三個狀態:佔用、空閑或壞簇。FAT的位元有12、16和32。12位表項值可表示4096個簇,16位表示65536個簇(一般每簇不多於64個扇區(32KB),這樣,FAT16最多管理32*65536=2GB)。FAT32即使每簇4KB大,也可以管理16TB的分區。

FAT檔案定位

由FAT+FDT來定位。FDT每32個位元組表示一個檔案。其中最重要的是位移1A-1B兩位元組,表示此檔案的開始簇號(此簇號有兩個用處,一是定位檔案的DATA,二是在FAT中找檔案的下一簇)。

例子我們找“winhex教程.pdf”,先搜尋ASCII來到FDT

FAT1起始位移為0x200,檔案長度0x86A0F3,因此我們要定位的位移為0x16B2

我們繼續走,發現簇鏈都是連著的,貌似沒有片段!

OK,winhex教程.pdf的簇範圍為:0xA59~0xB66 (2649 ~ 2918簇)

檔案長度0xF3A08600,由 可知,每簇64扇區。32768=0x8000,0x86A0F3 MOD 0x8000=0x20F3,即最後一簇佔用了0x20F3位元組。

最後一簇開頭

0x5B5FE00+0x20F3 = 0x5B61EF3

Hash下,發現一模一樣。這就對了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.