Windows 正在转储$mft文件的内容

Windows 正在转储$mft文件的内容,windows,kernel,ntfs,ntfs-mft,Windows,Kernel,Ntfs,Ntfs Mft,对于我正在做的一些商业项目,我需要能够读取存储在$mft文件中的实际数据 我找到了一个可以帮上忙的方法,但由于它的gpl,我无法将它集成到我的代码中 有人能告诉我一个我可以使用的项目吗?或者告诉我相关的windows API(不需要1000行代码就可以实现) 顺便说一句,为什么windows不允许我直接读取mft文件呢?(通过创建文件和读取方法,如果我想毁掉我的驱动器,那是我的事,不是微软的事) 谢谢。这不是一个微不足道的提议。您可能需要使用自己的代码解决方案来实现这一点。您可以通过签出获取有关

对于我正在做的一些商业项目,我需要能够读取存储在$mft文件中的实际数据

我找到了一个可以帮上忙的方法,但由于它的gpl,我无法将它集成到我的代码中

有人能告诉我一个我可以使用的项目吗?或者告诉我相关的windows API(不需要1000行代码就可以实现)

顺便说一句,为什么windows不允许我直接读取mft文件呢?(通过创建文件和读取方法,如果我想毁掉我的驱动器,那是我的事,不是微软的事)


谢谢。

这不是一个微不足道的提议。您可能需要使用自己的代码解决方案来实现这一点。您可以通过签出获取有关$MFT的详细信息

另一个选择是花一些时间查看开源项目NTFS-3g的源代码。您可以从下载源代码

另一个好项目是NTFSProgs


祝您好运。

您只需在\上使用CreateFile()打开卷的句柄。\X:其中X是驱动器号(请查看CreateFile()上的MSDN文档,它在备注部分中提到了这一点)

将第一个扇区读入NTFS引导记录结构(您可以在线找到它,搜索Richard“Flatcap”Russon,编辑:我找到了它,)。引导扇区结构中的一个字段给出了集群中MFT的开始位置(LCN of VCN 0 of$MFT),您必须对该位置执行SetFilePointer(),并读取扇区的倍数。来自该位置的前1024个字节是$MFT的文件记录,同样,您可以解析该结构以查找数据属性,该属性始终是非驻留的,其大小是当时MFT文件的实际大小

$Boot的基本结构、文件记录和基本属性(标准信息、文件名和数据)以及解析代码应该运行少于1000行代码