NTFS下文件索引实验目的用WinHex分析新建虚拟磁盘中的数据,查找相应文件地址及内容。一、虚拟硬盘的创建、加载、初始化及新建NTFS分区1、新建虚拟硬盘(如图1)。图1新建虚拟硬盘2、加载虚拟硬盘(如图2)。图2加载虚拟硬盘3、初始化硬盘(如图3)。图3初始化硬盘4、新建一个200M的NTFS主磁盘分区,并执行快速格式化。(如图4)图4新建分区并加载5、在新加卷M盘根目录下创建文件(如图5)。图5在根目录下创建文件二、用WinHex软件查找shang123.txt文档1、用winhex打开虚拟硬盘并打开MBR模板(如图6),得到隐藏扇区为63,即DBR所在位置图6MBR模板2、跳到63号扇区(如图7).图7跳转至DBR3、进入DBR,打开模板(如图8),得到每簇扇区数为1,每扇区字节数为512,MFT开始簇号为273084图8DBR模板NTFS文件系统使用了逻辑簇号LCN和虚拟簇号VCN对卷进行管理。其中LCN是对卷的第一个簇到最后一个簇进行编号,只要知道LCN号和簇的大小及NTFS卷在物理磁盘中的起始扇区(绝对扇区)就可以对簇进行定位,而这些信息在NTFS卷的引导扇区中可以找到(BPB参数(附表2)),在系统底层也是用这种方法对文件的簇进行定位,找到簇在磁盘中的物理位置的计算公式是:MFT扇区号=每簇扇区数*MFT开始簇号数+隐藏扇区数4、进入0号MFT(如图10),即$MFT=1*273084+63=273147(如图9)图9跳转MFT图10MFT表5、进入4号MFT表,即根目录MFT,打开模板(如图11)图11MFT模板找到90号属性,A0号属性,B0号属性(附表6),(如图12)由runlist(附表7)31086840062108F9BB得到1号索引(附表3附表4)数据区位置为409704号簇,2号索引数据区位置为392290号簇(由F9BB为有符号数,计算得4406H,加上一号索引数据区位置即可)图1290、AO、BO属性6、跳到409704号簇(如图13)图131号索引数据区发现名为shang123.txt文件索引表(如图14)图14shang123.txt文件索引表分析其表内容,得到其MFT表号为5C,即92(如图15)图15文件索引表内容7、跳到第92号MFT表项(如图16),找到的80属性为常驻属性,文件内容为Imissyou.图16第92号MFT表8、打开shang123.txt文档,检查其内容(如图17)。图17shang123.txt文档内容经检验,WinHex中数据和shang123.txt文档中数据相同,实验成功。附表1附表2BPB参数附表3附表4附表5偏移大小(字节)描述~~标准属性头0x00VCN使用情况表(低位代表前面的VCN)位(2进制)VCN000000100000010100001002…………附表6BOH属性描述表偏移长度(字节)描述第一个DataRun的含义描述0x001高4位为DataRun的起始簇号在这个压缩数据中所占的字节数(N)低四位为DataRun的所占用簇数在这个压缩数据中所占的字节数(L)0x01LDataRun所占用簇数L+1NDataRun的起始簇号第二个DataRun的含义描述L+N+11高4位为DataRun的起始簇号在这个压缩数据中所占的字节数(N)低四位为DataRun的所占用簇数在这个压缩数据中所占的字节数(L)L+N+2L1DataRun所占用簇数L+N+3N1DataRun的起始簇号的相对簇数,将此值加上第一个DataRun位置描述中的起始簇号,就是DataRun的起始簇号(注意该值是有符号值)……………………附表7RUNLIST