首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转储$mft文件的内容

转储$mft文件的内容
EN

Stack Overflow用户
提问于 2011-02-07 10:33:43
回答 2查看 5.3K关注 0票数 4

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

我找到了一个可能有用的gpl库,但是由于它的gpl,我无法将它集成到我的代码中。

请有人告诉我一个我可以使用的项目,或者指向相关的windows (一些不需要1000行代码来实现的东西)。

顺便说一句,为什么windows不允许我直接读取mft文件呢?(通过create文件和read方法,如果我想破坏我的驱动器,那是我的事,而不是Ms的事)。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-07-30 06:15:02

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

将第一个扇区读入NTFS引导记录结构(您可以在网上找到它,搜索Richard“平板帽”Russon,编辑:我找到它,http://www.flatcap.org/ntfs/ntfs/files/boot.html )。引导扇区结构中的一个字段给出集群中MFT的起始位置($MFT的VCN 0的LCN),您必须对该位置执行SetFilePointer(),以扇区的倍数进行读取。来自该位置的前1024字节是$MFT的文件记录,同样,您可以解析该结构以查找数据属性,该属性总是非常驻的,其大小是该文件的实际大小。

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

票数 3
EN

Stack Overflow用户

发布于 2011-03-22 04:02:03

这将不是一个微不足道的命题。您可能需要提交自己的代码解决方案才能完成这一任务。通过查看$MFT,您可以获得有关http://www.ntfs.com/ntfs-mft.htm细节的一些信息。

另一种选择是花一些时间浏览开源项目NTFS-3g的源代码。您可以从http://www.tuxera.com/community/ntfs-3g-download/下载源代码。

另一个好项目是NTFSProgs http://en.wikipedia.org/wiki/Ntfsprogs

祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4920243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档