在网上闲逛寻找有关如何读/写MFT的解释时,我找到了以下部分:(http://www.installsetupconfig.com/win32programming/1996%20AppE_apnilife.pdf)
如果NtfsProtectSystemFiles设置为FALSE,则特殊文件可以 被打开了。然而,存在一些与之相关的缺点 尝试这样做:因为打开了许多特殊文件 安装音量时的特殊方式,他们不准备 处理因调用ZwReadFile而产生的IRP_MJ_READ请求, 如果收到这样的请求,系统崩溃。这些特别的 可以通过使用ZwCreateSection和特殊文件映射来读取文件 ZwMapViewOfSection然后读取映射的数据。另一个问题 是一些特殊文件没有准备好处理 IRP_MJ_CLEANUP请求是在a的最后一个句柄时生成的 文件对象已关闭,如果有此请求,系统将崩溃 接收。唯一的选择是复制打开的句柄 将特殊文件放入永不终止的进程(例如系统) 处理)。
答案 0 :(得分:2)
这是旧数据(自1996年起)。而且有点不正确。从那以后,世界继续前进。
您可以尝试打开\ $ MFT来读取MFT但是获取正确的访问位可能会有问题。你也可以写它们,但这真的很火。文件系统不希望它的数据结构在没有它参与的情况下被修改。
最好直接打开分区raw并直接遍历磁盘结构。