用Winhex 手工定位NTFS 文件系统下的文件 相信很多朋友在认真看完数据恢复书籍中,关于NTFS 文件系统中讲述的一系列属性以后,或多或少还是有些范迷糊。确实,NTFS 文件系统结构比较复杂,且书中也没有讲到如何利用这些属性来定位文件,这对于初学者来说,无疑是一个缺憾.为弥补这一缺憾,我根据我个人对NTFS 文件系统的理解,制作了本分析过程。申明,这只是本人的理解,难免会有错误的地方。仅供大家参考。 现在我就以我电脑里的一个叫“MFT 结构分析”的图片文件,其存储路径为E:\教程\数据恢复。 接下来我们一层一层的去定位文件.以对所学的属性做一个融会贯通.或许有的朋友会说:在实际操作中,可以通过在MFT 中搜索文件名的方式来做出定位,这样也是可以的。我制作本分析过程的初衷也就是给初学者对NTFS 的理解提供一个思路。 学过FAT 文件系统的,一定知道如何定位分区以及 DBR,那好,我们就直接从 DBR 开始 从 DBR 中得出,每簇扇区数为08H,($MFT 一下简称 MFT).MFT 的起始簇为:00000C00H,转换为十六进制分别为8 扇区和 786432 簇。现在跳转到786432 簇,如下图: 我们可以看到,这是MFT 的第一个记录,记录的是它自己。,接下来我们跳转到MFT的关于根目录的记录,也就是第 5 号记录。根目录一般存储的文件以及文件夹比较多。所以,它是非常驻的,关于这些文件夹的信息记录在了其它的位置。而记录在什么位置是由索引分配属性来记录的,也就是A0 属性,接下来着重看一下A0 属性,如图: 上图红色的标注的位置是运行(Data ru n)31H 表示用三个字节描述的是索引的位置的起始LCN(3E9002H),一个字节描述的是长度(02H)。下一个运行的位置描述的是00H 表示到此结束,只有一个运行。(提示:如果下一个运行由内容,那么它描述的LCN 加上前一个运行描述的LCN 才是其真正的LCN,如果由三个运行,用第三个运行的LCN 加上前两个的LCN 就是第三个运行的真正的LCN,以此类推!) 我们将其转换为10 进制数值得到这样一个信息,索引项的起始位置为167998 簇,乘以每簇扇区数8,等于1343984 扇区,长度为2 个簇,跳转到1343984 扇区,如图: 这个位置是根目录的索引项,可以看到里面索引的文件名为元数据。“教程”这个文件夹也存放在根目录里面,我们搜索该文件名,以找到相对应的索引项,由于NTFS 里面文件名是用Unincode 字符来表示的,所以该文件名转换为16 进制数值为59650B7A8765H,我们在根目...