type
status
date
slug
summary
tags
category
icon
password
NOTE
NTFS分区——文件提取
注意看,这个男人叫小帅(bushi)
这里有个分区格式为NTFS的磁盘,目录文件如下


磁盘根目录有
xyz.png
,xyz.txt
和xyzfile
文件夹,xyzfile文件夹里面有个666.png
文件提取xyz.png文件
首先,在$MFT记录中查找根目录文件记录,根目录文件记录号为05

往下找到A0H属性

A0H属性最后8个字节的数据为dataruns(数据列表),即
11 01 24 00 00 00 00 00
11 01 24
其中
11
的第一个 1 表示在这段dataruns中,有1个字节用于描述根目录索引节点记录占用簇数(即01
),第二个 1 表示有1个字节用于描述根目录索引节点起始簇号(即24
);上面这段dataruns表示,根目录索引节点起始簇号为0x24,即第36号簇,占用1个簇
根据dataruns信息找到根目录索引节点,跳转到36号簇

在这1个簇中,都是根目录下的所有文件和文件夹的索引节点
往下找到xyz.png的索引节点

前6个字节记录了xyz.png的文件记录号,0x27也就是第39号文件记录
跳转到$MFT中找到第39号文件记录

分析80H属性,第9个字节表示该文件的常驻/非常驻属性,00为常驻属性,01为非常驻属性,常驻属性直接从文件记录中提取,非常驻属性需根据80H属性dataruns提取
据上图得知,为非常驻属性,找到dataruns,即80H属性最后8个字节
22 D7 00 88 05 00 00 00
22
的第一个 2 表示有2个字节用于描述该文件记录所占簇数(即D7
);第二个 2 表示有2个字节表示该文件记录起始簇号(即88 05
)则该段dataruns表示xyz.png文件记录起始簇号为588,即第1416号簇,该文件记录所占簇数为0xD7,即215个簇
根据dataruns跳转到第1416号簇

如果该文件为PNG文件,则文件记录开头几个字节固定会表示PNG,如上图橙框
右键起始位置,选块起始位置

随后跳转到1416+215=1631号簇,往上找到结尾,选块尾部

右键选中部分,编辑—>复制选块—>至新文件

另存为时要指定后缀

成功提取!

提取666.png文件
因为666.png在xyzfile文件夹中,所以要先找到xyzfile文件夹的索引节点
跟上述步骤类似,先找到$MFT记录中的根目录文件记录(第5号文件记录)

根据A0H属性的dataruns跳转到第36号簇,找到xyzfile文件夹索引节点

索引节点前6个字节表示该文件夹的文件记录号,0x2C,即第44号文件记录
在$MFT中找到第44号文件记录

从30H属性可以看到,第44号文件记录为xyzfile文件夹的文件记录,44号后面的才是xyzfile文件夹内的文件的文件记录
继续往后找,可以发现第45号文件记录是666.png的

分析80H属性,第9个字节表示为非常驻属性,直接从dataruns提取
22 D2 00 AC 08 00 00 00
该文件的文件记录起始簇号为0x8AC,即第2220号簇,文件记录所占簇数为0xD2,即占用210个簇
跳转到第2220号簇

在起始位置选块,然后跳转到第2220+210=2430号簇,往上找,找到结尾部分,选块尾部

复制到新文件,提取成功!

(待施工)
- 作者:sleepfat
- 链接:https://blog.sleepfat.top/data-recovery-outputfile
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。