NTFS:
总结构:
MBR |
|
DBR |
|
$MFTmirr |
|
$MFT |
|
DBR备份 |
重点就是DBR中的BPB部分,这是重建DBR必须回填的数据
偏移 |
解释 |
备注 |
00-02 |
跳转指令 |
固定EB5290 |
0B-0C |
每扇区字节数 |
固定0002 |
0D |
蔟大小 |
大部分为08 |
1C-1F |
起始扇区 |
分区开始的位置也就是DBR |
28-2B |
扇区总数 |
也就是容量 |
30-33 |
$MFT起始簇号 |
DBR向下第16扇区中的$MFT中80属性簇流描述中有记录 |
FE-FF |
结束标志 |
固定55AA(极其重要) |
DBR重建BPB部分的回填:
簇大小:大部分为08、
容量:可通过DBR向下找到的$MFTmirr中$MFT起始簇号跳转至$Bitmap,通过有数据的倒数第二行计算容量($Bitmap起始=$MFT起始簇号✖簇大小+起始扇区+12)
重建$MFT:①通过格式化(要与原分区容量一样大)
②找到最后一个$MFT项查看2C-2F目录项号。
用最后一个$MFT项起始位置-2*2C-2F目录项号得到原$MFT的起始位置,复制一个好的$MFT至$MFT起始位置。
需要回填:
偏移(80属性相对偏移) |
解释 |
备注 |
10-17 |
$MFT起始项 |
固定为0 |
18-1F |
$MFT结束项 |
☆要记得-1 |
28-2F 30-37 38-3F |
$MFT项总字节数 |
三个偏移结果相同 |
☆最后一个$MFT项的2C-2F目录项号*2/8=$MFT项的大小。
短流记录(80属性向下第五行)怎么看:
例子:32 80 62 00 00 0C
第一字节32 前一位描述的是起始簇号所占的字节数,后一位描述的是$MFT项的大小
即起始簇号为 00 00 0C $MFT项的大小为 80 62
★其中的文件目录项的短流看法相同
MFT的跳转指令:46 49 4C 45
如果知道文件的后缀名时,可直接在bitmap后面查找文本直接搜索后缀名(要用Unicodec查询)即可看到文件记录项。
文件记录项:
找到文件记录项看30属性可知道该文件记录的文件名,再看80属性(该属性为该文件记录的数据)
文件起始扇区=文件起始簇号✖簇大小+分区起始(DBR)
通过30属性可知该文件记录记录的是11.doc
深蓝:文件大小(字节数)在短流前十六字节(共八字节)
黑色:一个描述
橙色:$MFT项的大小
红色:文件起始簇号
绿色:结束
容量计算:
跳转至$Bitmap簇位图的80属性描述的大小(倒数第二行数据)乘以64
跳转至$BadClus坏簇文件的簇流运行的$MFT项大小再加上一后,乘以簇大小可得到大概的容量值
跳转至$Bitmap簇位图的数据,以最后一个00 80结束,所选中的字节乘以8得到该分区有多少个簇,再乘以簇大小可以得到容量
(由于簇位图一个字节描述的是八个簇的记录,所以先将大小乘8得到该分区有多少个簇,然后再乘以簇大小就可以得到大概的容量)
文件夹快速恢复(文件夹的开头标志为49 4E 44 58)
$RECYCLE.BIN这是单个盘符回收站。(直接打开ntfs的目录,可在里面看见$RECYCLE.BIN,里面就是文件夹。)
本文地址:https://bolg.xs357.com/post-112.html
未标注转载均为本站远程,转载请注明文章出处:
评论列表