分析NTFS系統,得到特定文件內容

因爲軟件安全實驗課的關係,特做此實驗,鞏固上節學的知識

首先從C盤分出了10G的空間(虛擬機之前只有一個分區),然後創建E:\dir\enjoy\test.txt
test.txt裏面的內容是1234567890
這裏寫圖片描述

打開WinHex
這裏寫圖片描述

從圖中可以看到啓動扇區從0扇區開始.共計63個扇區,屬於隱藏扇區

這裏寫圖片描述這裏寫圖片描述

第一個分區從63扇區開始,總共62914496個扇區,每個扇區512字節,每個簇4096個字節,共計7864312個簇,$MFT所在簇號爲786432,(柱面391;磁頭160,扇區25)

這裏寫圖片描述
這裏寫圖片描述

第二個扇區起始扇區號爲62914560,總計扇區20971520,每個扇區大小爲512字節,每個簇4096個字節,總共2621439簇,MFT所在扇區爲786432(柱面:4307,磁頭:223,扇區:13)
注:第二和第二分區之間還有一個扇區,我不知道是幹嘛的
最後從83875365扇區開始,是剩餘扇區,共計10715個扇區

當然,通過軟件,我們很容易得到磁盤的信息,但是,本文要做的,是手動查找這些信息,讓我們對磁盤有更深刻的認識,首先了解一下磁盤的基本結構

硬盤的主引導記錄也稱 MBR,位於 0柱面 0磁頭 1扇區,主引導記錄扇區所在的磁道,通常稱其爲 0磁道,它屬於隱藏磁道,這個磁道的 63個扇區屬於隱藏扇區。操作系統的所有命令,除了 FDISK以外都不能訪問它們,格式化程序 FORMAT,對此也無能爲力。 所以分區軟件也無法將這些扇區分配給別的分區了,只能從63號扇區開始分配給第一個分區。

一個四分區的基本磁盤結構如下
這裏寫圖片描述

擴展分區中的每個邏輯驅動器都存在一個類似於MBR的擴展引導記錄( Extended Boot Record, EBR),也有人稱之爲虛擬mbr或擴展mbr,意思是一樣的。擴展引導記錄包括一個擴展分區表和該扇區的標籤。擴展引導記錄將記錄只包含擴展分區中每個 邏輯驅動器的第一個柱面的第一面的信息。一個邏輯驅動器中的引導扇區一般位於相對扇區32或63。但是,如果磁盤上沒有擴展分區,那麼就不會有擴展引導記 錄和邏輯驅動器。第一個邏輯驅動器的擴展分區表中的第一項指向它自身的引導扇區。第二項指向下一個邏輯驅動器的EBR。如果不存在進一步的邏輯驅動器,第 二項就不會使用,而且被記錄成一系列零。如果有附加的邏輯驅動器,那麼第二個邏輯驅動器的擴展分區表的第一項會指向它本身的引導扇區。第二個邏輯驅動器的 擴展分區表的第二項指向下一個邏輯驅動器的EBR。擴展分區表的第三項和第四項永遠都不會被使用。
這裏寫圖片描述

MBR基本結構
這裏寫圖片描述

硬盤分區結構信息
這裏寫圖片描述

基本知識介紹完,現在我們來查看一下
這裏寫圖片描述

第一個分區

80 活動分區
01 01 00 起始扇區:磁頭號1,扇區號1,柱面號0
07 NTFS分區
FE FF FF 結束扇區:?
3F 00 00 00 起始扇區 3F(63)
C1 FF BF 03 本分區扇區總數3BFFFC1H=62914497(估計加上了第一分區和第二分區之間那個分區)

第二個分區

00 非活動分區
FE FF FF 起始扇區?
07 NTFS分區
FE FF FF 結束扇區?
00 00 C0 03 起始扇區 3C00000(62914560)
00 00 40 01 本分區扇區總數 1400000(20971520)

除了,起始(結束)磁頭號扇區號,柱面號出了點問題(柱面號10位不夠),其他的與軟件測出來的一致

因爲我們要找的文件在E盤,屬於第二個分區,所以我們找到第62914560個扇區
這裏寫圖片描述

通過前面一片博客的介紹,我們從圖中得知這個分區每個扇區大小爲512(200H)字節,每個簇佔8個扇區(4096字節,進行了4K對齊),這是塊硬盤(F8),每個磁道63(003F)個扇區,每個柱面255(00FF)個磁頭,總計20971519(0000013FFFFF)個扇區,$MFT開始簇號C0000

所以我們找到$MFT所在扇區,3C00000+C0000*8=69206016,然後找到第五個文件記錄,69206016+2*5=69206026
這裏寫圖片描述

我們發現,90屬性裏沒啥有用的資料,於是再往下看0AH(索引分配)的屬性,發現08位上的值爲1,說明這是非常駐屬性,從偏移爲20位置的值48得知Data Run的偏移地址,Data Run的值是31 01 A3 3D 14 00,所以索引地址在起始簇號爲143DA3處,佔一個簇.扇區號:3C00000+143DA3*8=73526552,

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

通過8H位上的值來劃分索引項,找到我們需要找的文件夾dir所在項,得到文件的MFT參考號1D(偏移0H處,只取前面四位?這個我還不太清楚,看到大多版本是8位,但是4位才能得到),扇區號:3C00000+C0000*8+1D*2=69206074,$MFT下第1D個文件記錄
這裏寫圖片描述

可以通過dir的文件屬性90H找到enjoy目錄的索引根的MFT參考號1E,同時這裏也可以看到enjoy的父目錄dir的MFT參考號1D,扇區號:3C00000+C0000*8+1E*2=69206076
這裏寫圖片描述

可以通過enjoy的文件屬性90H找到enjoy.txt的文件索引根的MFT參考號1F,扇區號:3C00000+C0000*8+2*1F=69206078

這裏寫圖片描述

通過enjoy.txt的文件屬性80H得到文件enjoy.txt的內容1234567890

至此,我們成功手動從yingpan中找到我們想要找到的文件所在位置,以及文件內容.
很多時候我算地址,前面用的16進制,後面用的10進制,..這點需要注意啊,如有其他疑問,請留言告訴我,謝謝!!

發佈了42 篇原創文章 · 獲贊 37 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章