|
$Bitmap是NTFS里一个元文件,读取方法为:
1。首先确定NTFS分区每个簇所占扇区数,在分区第一个扇区中0x0D处,一个字节。
2。确定$MFT的首簇:在分区第一个扇区中0x30处,8个字节。
3。计算$Bitmap条目位置:将前两步结果相乘得$MFT首扇区,加上12(因为$MFT为第0个文件,$Bitmap为第六个文件,每个FileRecord一般占2个扇区)。
4。读取$Bitmap条目位置处两个扇区。
5。从这两个扇区0x30处开始找80属性:读8个字节,前四个为属性,如果小于80继续,后四个为此属性所占字节,一直到找到80属性。(30属性是文件名,正好确定此文件是否确实是$Bitmap)
6。从80属性开始处向后偏移0x20字节处,查看本文件存放位置的位置,一般是0x40,即从80属性开始处向后偏移0x40字节,此为本文件存放位置。
7。此字节低4位为簇数字节数,高4位为首簇字节数。假如此处为31 6E EB C4 04 00,则此文件簇数为0x6E,首簇在0x04C4EB,这些簇中就是该文件的内容。
|
|