2012-07-25 66 views
3

虽然徘徊在网上找的如何读/写MFT的解释,我发现如下因素部分:(http://www.installsetupconfig.com/win32programming/1996%20AppE_apnilife.pdf阅读MFT在NTFS

如果NtfsProtectSystemFiles设置为FALSE,则该特殊文件可以 是打开。然而,与 尝试这样做有一些缺点:因为许多特殊文件在安装卷时以特殊方式打开,因此它们不准备处理由调用ZwReadFile产生的IRP_MJ_READ请求, ,并且如果收到这样的请求,则系统崩溃。通过使用ZwCreateSection和 ZwMapViewOfSection映射特殊文件,然后读取映射数据,可以读取这些特殊的 文件。 的另一个问题是,一些特殊文件没有准备好处理 文件对象的最后一个句柄关闭时产生的IRP_MJ_CLEANUP请求,并且如果接收到这样的请求 ,则系统崩溃。唯一的选择是将打开的句柄复制到一个永不终止的进程中(如系统 进程),以将特殊文件的打开句柄复制到 。

  1. 是什么意思“他们不准备处理IRP_MJ_READ请求”需要什么样的准备?什么是IRP_MJ_READ?
  2. “使用ZwCreateSection和ZwMapViewOfSection映射特殊文件,然后读取映射数据”如何解决问题?
  3. 这是什么意思“文件不准备处理当文件对象的最后一个句柄关闭时产生的IRP_MJ_CLEANUP请求”又是什么准备?什么是IRP_MJ_CLEANUP?
  4. “将特殊文件的打开句柄复制到永不终止的进程中”如何解决问题?

回答

2

这是旧数据(从1996年)。多一点不正确。自那时起,世界就一直在发展。

您可能会尝试打开\ $ MFT来读取MFT,但正确获取访问位可能会有问题。你也可以写他们,但这真的是在玩火。文件系统并不期望它的数据结构将被修改而不需要它的参与。

你打开原始分区并直接走过磁盘结构要好得多。

+0

实际上,这本书将是2000年左右的Nebbett的书。尽管如此,仍旧老旧。 – 0xC0000022L 2015-08-01 16:09:21