在做數位鑑識調查時我們最怕一件事,就是破壞證物,因為證物一旦被破壞與剛開始的不一樣,往往在法庭上是不被公認這是有效證據,因此我們取得到原始證物時會再做一份副本,這時會在原始證物與副本做 Hash 值比對,要是兩邊 Hash 都一樣就能以這為依據,在法庭上就能說我在副本調查到的證據,原始證物也會有一樣的跡證,畢竟兩份是一模一樣的。
回到主題,在我們調查的證物大多數是 Windows 作業系統的硬碟,通常 Windows 的主要磁區格式邏輯幾乎為 NTFS ,這時就得瞭解 NTFS 在儲存檔案邏輯是什麼?NTFS 儲存檔案的內文記錄在 MFT 表中的0x80裡,但我有看過的案例中,曾經有遇過內文存在0x30中,不過那少之又少檔案Size也很小,我們回到0x80,在0x80裡有分Resident以及Non Resident這兩種,Resident 通常出現的狀況是,檔案 Size 不大內文可儲存在 MFT 表裡,換句話說內容存在 MFT 表的0x80屬於 Resident 如下圖:
Non Resident 因為內文較大,所以在0x80裡的資訊會紀錄檔案的相關訊息,有 Starting VCN、Last VCN、Offset to the Data Runs、Compression unit size、Allocated size、Real size、Initialized data size,簡單來說,就是會告訴你他的內文在硬碟裡的哪個位置,如下圖:
當然一個檔案,可能內文頭中尾各分散在硬碟的不同位置,在 MFT 表裡就會出現兩個0x80資訊出現,在更多0x80的話,NTFS 邏輯會把這些0x80記錄在0x20,這時你就得先解析0x20裡的資訊,在把這些0x80內文一一組起來還原此檔案。
以上是我對 NTFS 檔案儲存邏輯的介紹,下次我會講 FAT32、exFAT 還有 Linux 的 Ext4 邏輯,以及 Ext4 要怎麼回復刪除檔案,有興趣的朋友可以關注我,這是我的粉絲團 facebook.com/rexlintechnology 不吝嗇給個讚跟追蹤吧!
留言列表