如何获取已删除目录的路径?

时间:2011-10-05 22:02:21

标签: windows ntfs

我正在使用C ++查询NTFS更改日志,它似乎工作正常。唯一的问题是更改日志不显示目录删除或修改的任何记录。因此,我无法在其下的子目录和子文件中获取已删除文件的路径。

有没有人对这个话题有任何见解?

编辑:任何人都可以关闭此主题吗?我注意到已删除目录下的文件将首先显示为已删除,并且目录删除记录将在所有这些之后出现。这是有道理的,因为首先删除文件然后删除目录。为我缺乏远见而道歉。

2 个答案:

答案 0 :(得分:1)

我不够专家直接回答这个问题。

但是,我建议你看看

它包含以下相当不祥的标志:

if (file->directory) {
    ntfs_log_debug("Found a directory: not recoverable.\n");
    return 0;
}

答案 1 :(得分:0)

按照设计,更改日志必须管理索引的删除,因为它至少需要对几个文件系统进行更改:

  • 在标题
  • 中标记索引的MFT条目
  • 解除分配索引的群集
  • 释放MFT条目位图

在不知道如何查询更改日志的情况下,我猜想API会省略索引删除信息。如果你自己解析期刊,那么我不知道它为什么不存在。

我从2002年到2004年为NTFS写了一些取证工具,它们确实恢复了已删除目录的内容。但这并不容易。扫描$MFT以获取已删除的索引非常简单:只需查看状态位即可。除非已重复使用,否则目录名称和所有其他信息完好无损,但“可用”位除外。查找目录的路径是一个简单的迭代遍历父链,直到命中根目录。