数据恢复笔记——NTFS文件系统

DBR的数据结构

偏移描述
00-02跳转指令
0D-0D每簇扇区数
28-2F文件系统扇区总数
30-37(MFT)主文件表起使簇号

跳转指令对应数据可以找到NTFS的DBR。

NTFS文件系统的元文件

在格式化为NTFS文件后,系统对分区写入的文件就是元文件。元文件序号对应表
其中根据起使簇号,先跳转到MFT。其中2C-2F位置为对应序号,文件名也可以看出来。用鼠标向下滚过一个扇区可以看到2C-2F位置对应序号1的$MFTMirr文件名。

主文件表MFT

  • 以明文“FILE”开头。实验中对应46 49 4C 45。
  • 每个MFT项都占用1024个字节,即两个扇区。
  • 每个MFT项占用的两个扇区,最后两个字节为一个修正值,这个修正值和MFT项中的更新序列号相同。如果系统发现不同,就会认为此MFT项错误,会把开头明文改为“BAAD”。
    主文件表修正值

MFT属性类型

属性类型值(16进制)描述
10标准信息
20属性列表
30文件名属性
40对象ID
50安全描述符
60卷名
70卷信息
80文件数据内容
90索引根属性
A0索引分配树节点
B0$MFT文件和索引的位图

MFT属性类型图

10h属性体数据结构

10h属性体数据结构

30h属性体的数据结构

30h属性体的数据结构1
30h属性体的数据结构2
其中在实验中winhex显示的38-3B为“06 00 00 00”.可以分为:2和4,表明文件为隐藏的系统文件。

60h属性体的数据结构

60属性是卷名属性,用以记录卷名。在属性体中记录的为Unicode代码。
60h属性体的数据结构

70h属性体的数据结构

70属性是卷信息属性,用以描述卷的版本、状态等信息。

80h属性体的数据结构

  • 80属性是数据属性
  • 常驻80h属性的属性体是数据内容
  • 非常驻80h属性的属性体是簇流运行。

MFT属性中的属性头数据结构

其中MFT属性可以分为两类:常驻属性和非常驻属性。
常驻属性:直接在MFT项中记录属性体。(只能记录少量的数据)
非常驻属性:在MFT之外的地方记录属性体。
常驻属性的数据结构(从属性开始的地方偏移,而不是从头):

偏移字节(16进制)描述
00-03属性类型
08-080:常驻属性。1:非常驻属性
10-13属性体字节数。(实验中为“4A 00 00 00”,表示属性体4行在多出半行到A这个位置)
14-15属性体偏移的字节数

非常驻属性的数据结构(从属性开始的地方偏移,而不是从头):

偏移字节(16进制)描述
00-03属性类型
08-080:常驻属性。1:非常驻属性
10-17属性体的起始虚拟簇号
18-1F属性体的结束虚拟簇号
20-21簇流运行的偏移地址
28-2F属性体占用总空间
30-37属性体实际占用字节数
38-3F属性体的初始大小
40-簇流的记录信息

MFT的簇流运行数据结构

簇流运行数据结构
32 => 0011 0010

  • 第一个数值的低4位为“2”:对应后面两个数值
  • 第一个数值的高4位为“3”:簇流大小后面的3个数值
  • 前两个数值“C0 02”:簇流的大小
  • 后面三个数值“00 00 0C”:簇流起使簇

手工提取文件数据

  1. 先在DBR,根据“30-37”对应(MFT)主文件表起使簇号,点击跳转到MFT。(或点击$MFT文件)
  2. 打开LoveString软件,将文件名输入进去。复制Unicode编码方式的编码。
  3. 点击“查找十六进制数值”,将刚刚的代码复制进去,下面的勾都不勾。点击查找。
  4. 会在“30”属性中查找到对应的文件名。
  5. 在“80”属性中查找属性体部分,按照上面簇流运行的数据结构,查找“簇流大小”、“簇流起使簇”
  6. 转跳到“簇流起使簇”,右键“选块起使位置”。再跳转到“簇流起使簇”+“簇流大小”位置,右键“选块尾部”。
  7. 选中之后右键,“编辑”→“复制选块”→“至新文件”。重命名为文件正确格式。

手工提取片段文件数据

如果后面是00,那么那么这个簇流运行结束,否则还有簇流运行。
下个簇流的起始簇号是相对于这个簇流的起始簇号。

  1. 按照上面一般文件提取顺序,将第一部分文件提取出来,命名为“1”
  2. 看到后面不为00重复以上操作,将第二部分文件提取出来,命名为“2”。7.(注意:第二个起始簇号并不是上面的标号,第二个簇号是相对于第一个簇号来说,第二个簇号=第一个簇号+标号)
  3. 提取出两个选块后,“工具”→“文件工具”→“文件合并”。
  4. 先保存一个后缀名和原文件相同的文件,然后按照顺序进行附加。双击即可。

常驻80h属性

直接创建文件的时候文件内容少点就行,属性体中可以放的下就行。
选中其属性体,右键→“编辑”→“复制选块”→“至新文件”,即可复制文件。

B0属性体的数据结构

B0属性为位图属性,描述索引或MFT的分配情况。
比如:$MFT文件的MFT项中位图存储位置
B0属性体的数据结构
“31 01 FF FF 03”其中
03 FF FF:为“262143”。代表此簇流起始于262143簇
01:代表大小一个簇。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值