用winhex打开磁盘,第一个扇区为dbr,
wBytePerSector: 00 02 --->0200=512个字节
bSectorPerCluster: 08
$MFT: 0x0c0000 起始逻辑簇号->offset:0x0c0000 * 200 * 8 = 0x0c0000000
根目录:$root: 其后的0x1400处 0x0c0001400
根据tag_MFTHEAD中的usAttrOffset找到第一个属性地址,usAttrOffset为0x38所以第一个属性在0x0c0001438处,这里第一个属性为$STANDARD_INFORMATION,不是我们要找的,加上该属性大小usAttrSize到第二个属性处,依次找到
索引根。在0xc0001550处。
索引分配属性在0xc0001620处。属性后面0xc0001668处即属性后面就是属性的数据。即运行run
第一个字节数据为31,后面顺序跟着一个字节长度,3个字节偏移。即用三个字节描述的是索引的位置的起始LCN(94e72cH(9758508)(偏移94e72c0)(簇号)),一个字节描述的是长度(02H(几个簇)).直到描述的是00H表示到此结束,只有一个运行。(提示:如果下一个运行由内容,那么它描述的LCN加上前一个运行描述的LCN才是其真正的LCN,如果由三个运行,用第三个运行的LCN加上前两个的LCN就是第三个运行的真正的LCN,以此类推!)
94e72cH---->反过来,0x2ce794000h ???? 0x2ce794 * 2 * 8 = 0x2ce7940 ?后面俩0是?前面算错,0200->512个字节。
test1.txt文件名在0x2ce795932处。文件记录在0x2ce795932-0x52处,即931300号扇区.0x001393=5011
0x0c0000 *8=6291456 。mft的第一号记录
6291456 + (5011*2) = 6301478 号扇区
即offset为c04e4c00
test1.txt的运行为31038d042e.
即在2e048d的3个簇中。即地址0x2e048d000的地址3个簇即为数据aaaaxxxx.
---ntfs白皮书
---用Winhex手工定位NTFS文件系统下的文件
---NTFS文件解析系统的简单分析
---NTFS-3G
---NTFS若干技术研究
--写于2013-9-24