Tho*_*ews 3 windows-7 ntfs hard-drive sectors hard-drive-recovery
我正在寻找一种高级方法来读取希捷 1TB 内部硬盘的 NTFS 文件系统上的 MFT 条目。平台为Windows 7。
我需要获取文件名、块大小和 LBA。
这是一项特殊的任务,因此我需要编写一个程序来执行此操作吗?
此信息可通过碎片整理 API访问。第三方碎片整理工具可能会暴露它。在最近的 Windows 系统上(8.1 有效,7 未测试),您可以使用fsutil它来查询:
C:\> fsutil 文件 queryextents example.txt VCN:0x0 集群:0x2 LCN:0x18f85e
还有另一个子命令可以转储文件中所有数据流的所有信息:
C:\> fsutil 卷文件布局example.exe
********* 文件 0x01390000000008dd *********
文件参考编号:0x01390000000008dd
文件属性:0x00000020:存档
...
流:::$FILE_NAME
属性:0x00000000:*无*
标志:0x0000000c:居民 | 未分配集群
尺寸 : 80
分配大小:80
Stream : ::$DATA (主数据流)
属性:0x00000000:*无*
标志:0x00000000:*无*
尺寸:1681920
分配大小:1683456
范围 : 1 范围
:1:VCN:0 集群:411 LCN:8527618
在这两个命令的输出中,对于每个“范围”(连续的簇范围),您将获得“虚拟簇号”(从文件开头的偏移量)、范围中的簇数和“逻辑簇号”(从卷的开头偏移)。
注:小文件,它适合在MFT库记录,保存在其MFT记录(“居民”) ,将有范围为零。对于那些,您需要使用其他方式来挖掘 MFT 本身。(此外,在某些情况下,文件可能是稀疏的,只在磁盘上分配了一小部分;其余的只是假定为空字节。)
集群是文件系统级别的,因此您需要将它们转换为块设备级别的扇区;我的系统每个集群有 8 个扇区:
C:\> fsutil fsinfo ntfsinfo c: ... 每扇区字节数:512 每个簇的字节数:4096 ... C:\>设置/a 0x18f85e * (4096 / 512) 13091568 C:\>设置/a 0x18f85e * 4096 6702882816
这意味着您可以\\.\C:使用 HxD 等打开,并在扇区 13091568(或字节 6702882816)处找到文件的开头。
| 归档时间: |
|
| 查看次数: |
1611 次 |
| 最近记录: |