对于一些商业的我正在做的项目我需要能够读取 $mft 文件中存储的实际数据。
我找到了一个gpl lib http://www.codeproject.com/KB/files/NTFSParseLib.aspx?artkw=ntfs这可能会有所帮助,但由于它是 gpl,我无法将其集成到我的代码中。
有人可以向我指出一个我可以使用的项目/或者向我指出相关的 Windows API(不需要 1000 行代码来实现的东西)
顺便说一句,为什么 Windows 不允许我直接读取 mft 文件? (通过创建文件和读取方法,如果我想毁掉我的驱动器,那是我的事而不是女士的事)。
thanks.
您只需使用以下命令打开卷的句柄创建文件()\.\X 上:其中 X 是驱动器号(请查看有关 CreateFile() 的 MSDN 文档,它在“备注”部分提到了这一点)。
将第一个扇区读入 NTFS 引导记录结构(您可以在网上找到它,搜索 Richard“Flatcap”Russon,编辑:我找到了它,http://www.flatcap.org/ntfs/ntfs/files/boot.html http://www.flatcap.org/ntfs/ntfs/files/boot.html)。引导扇区结构中的字段之一给出了簇中 MFT 的起始位置($MFT 的 VCN 0 的 LCN),您必须执行以下操作设置文件指针()到该位置读取多个扇区。该位置的前 1024 个字节是 $MFT 的文件记录,您可以再次解析该结构以查找始终非常驻的数据属性,其大小是当时 MFT 文件的实际大小。
$Boot、文件记录和基本属性(标准信息、文件名和数据)的基本结构以及解析代码应该运行少于 1000 行代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)