分析NTFS系统,得到特定文件内容

分析NTFS系统,得到特定文件内容



  首先使用InsDisk创建一个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基本结构

在这里插入图片描述


  硬盘分区结构信息

存贮字节位内容及含义
第1字节引导标志,若值为80H表示活动分区,若值为00H表示非活动分区。
第2\3\4字节本分区的起始磁头号、扇区号、柱面号。其中:
  磁头号–第2字节;
  扇区号–第3字节的低6位;
  柱面号–第3字节高2位+第4字节8位。
第5字节分区类型符;
  00H–表示该分区未用(即没有指定);
  06H–FAT16基本分区;
  0BH–FAT32基本分区;
  05H–扩展分区;
  07H–NTFS分区;
  0FH–(LBA模式)扩展分区(83H–Linux分区等)
第6\7\8字节本分区的结束磁头号、扇区号、柱面号。其中:
  磁头号–第6字节;
  扇区号–第7字节的低6位;
  柱面号–第7字节高2位+第8字节8位。
第9\10\11\12字节本分区之前已用了的扇区数(分区起始扇区)。
第13\14\15\16字节本分区的总扇区数


  基本知识介绍完,现在我们来查看一下

在这里插入图片描述


  第一个分区

偏移(offset)描述
80活动分区
01 01 00起始扇区:磁头号1,扇区号1,柱面号0
07NTFS分区
FE FF FF结束扇区:?
3F 00 00 00起始扇区 3F(63)
C1 FF BF 03本分区扇区总数3BFFFC1H=62914497(估计加上了第一分区和第二分区之间那个分区)


  第二个分区

偏移(offset)描述
00非活动分区
FE FF FF起始扇区?
07NTFS分区
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)个扇区, M F T 开始簇号 C 0000   所以我们找到 MFT开始簇号C0000   所以我们找到 MFT开始簇号C0000  所以我们找到MFT所在扇区,3C00000+C00008=69206016,然后找到第五个文件记录,69206016+25=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+C00008+1D2=69206074,$MFT下第1D个文件记录

在这里插入图片描述


  可以通过dir的文件属性90H找到enjoy目录的索引根的MFT参考号1E,同时这里也可以看到enjoy的父目录dir的MFT参考号1D,扇区号:3C00000+C00008+1E2=69206076

在这里插入图片描述


  可以通过enjoy的文件属性90H找到enjoy.txt的文件索引根的MFT参考号1F,扇区号:3C00000+C00008+21F=69206078

在这里插入图片描述


  通过enjoy.txt的文件属性80H得到文件enjoy.txt的内容1234567890
  至此,我们成功手动从yingpan中找到我们想要找到的文件所在位置,以及文件内容.
  很多时候我算地址,前面用的16进制,后面用的10进制,这点需要注意!!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘木之鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值