gpt4 book ai didi

c - 即使以管理员身份运行,打开 $MFT 文件也会导致访问被拒绝

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:05 46 4
gpt4 key购买 nike

我正在尝试从 MFT 中删除一个文件记录,如果我打开原始分区并通过解析 MFT 文件到达所需的文件记录,我就成功了。这种方法的问题是我必须首先锁定卷,以便我可以在任何 MFT 文件记录上写入零,如果其他进程持有卷锁(这是非常有可能的),写入原始卷会因 Windows 操作系统而失败限制。

我想到的另一种方法是将“$MFT”作为文件打开,然后对其进行读写。通过这种方式,我认为我不必锁定音量。但是,当我尝试通过 createfile winapi 函数打开 $MFT 文件时,即使我以管理员身份运行我的程序,也会出现“拒绝访问”错误?

我的问题是如何打开 $MFT 系统文件进行写入和读取? Windows操作系统是否允许系统文件以正常方式读写?如果没有,我还能做什么?

如有任何帮助,我们将不胜感激。

最佳答案

以防万一有人来这里希望打开 $MFT 用于一个合法目的,即 FSCTL_MOVE_FILEFSCTL_GET_RETRIEVAL_POINTERS DeviceIoControl ,当打开像 FILE_READ_ATTRIBUTES 这样的特殊流时,您需要在 CreateFile 的第二个参数中指定 C:\$MFT::$DATA

打开$MFT只允许你在执行DeviceIoControl请求时引用特殊文件,它不会像普通文件一样打开它进行读写。

如果您真的想读取 MFT 内容,当您需要非常快速地获取卷上每个文件的列表时,请参阅 FSCTL_ENUM_USN_DATA ,它会返回类似 USN_RECORD_V2 的结构,这些结构本质上是 MFT 记录。

关于c - 即使以管理员身份运行,打开 $MFT 文件也会导致访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499257/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com