我需要获取有关文件在NTFS磁盘上的物理位置的任何信息.绝对偏移,集群ID ……一切.
我需要扫描磁盘两次,一次是为了获取已分配的文件,还有一次我需要在RAW模式下直接打开分区并尝试查找剩余的数据(来自已删除的文件).我需要一种方法来理解我发现的数据与我以前作为文件处理过的数据相同.当我在原始模式下扫描磁盘时,我发现的数据的偏移量可以某种方式转换为文件的偏移量(具有关于磁盘几何的信息).有没有办法做到这一点?其他解决方案也被接受.
现在我正在玩FSCTL_GET_NTFS_FILE_RECORD,但目前无法使其工作,我不确定它会有所帮助.
我需要扫描磁盘两次,一次是为了获取已分配的文件,还有一次我需要在RAW模式下直接打开分区并尝试查找剩余的数据(来自已删除的文件).我需要一种方法来理解我发现的数据与我以前作为文件处理过的数据相同.当我在原始模式下扫描磁盘时,我发现的数据的偏移量可以某种方式转换为文件的偏移量(具有关于磁盘几何的信息).有没有办法做到这一点?其他解决方案也被接受.
现在我正在玩FSCTL_GET_NTFS_FILE_RECORD,但目前无法使其工作,我不确定它会有所帮助.
UPDATE
我找到了以下功能
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364952(v=vs.85).aspx
它返回包含nFileIndexHigh和nFileIndexLow变量的结构.
文档说
存储在nFileIndexHigh和nFileIndexLow成员中的标识符称为文件ID.对文件ID的支持是特定于文件系统的.文件ID不保证随着时间的推移是唯一的,因为文件系统可以自由地重用它们.在某些情况下,文件的文件ID可能会随时间而变化.
我真的不明白这是什么.我无法将其连接到文件的物理位置.以后可以从MFT中提取此文件ID吗?
UPDATE
发现这个:
该标识符和卷序列号唯一标识文件.重新启动系统或打开文件时,此数字可能会更改.
这不符合我的要求,因为我要打开文件,ID可能会改变的事实并不能让我满意.
有任何想法吗?