我目前正在尝试从原始数据中以编程方式解析硬盘驱动器的 MFT,以便枚举具有特定扩展名的所有文件(在很短的时间内)。
我正在按照该教程来指导自己:A Programmers View of Raw Filesystem Data Extraction。
我已经\\.\PhysicalDrive0
使用成功打开CreateFileA
,并且确实找到了我找到BPB
.
我的问题是我无法正确定位MFT
.
如上所示(我的 Windows 分区第一个扇区的原始数据),MFT 的逻辑簇数等于0x56a6
.
然后我计算了每个簇的扇区数,即0x20 (0x20 * 512 = 0x4000 bytes)
.
所以从逻辑上讲,MFT 的偏移量0x4000 * 0x56a6
等于0x15a98000
。
当我寻找该偏移量并检索前 512 个字节时,我看不到应该开始的预期数据FILE
(我只看到一些随机字节)。
我也尝试不是从分区的第一个扇区而是从硬盘驱动器的一个扇区中寻找,它也不起作用(我想这是正常的)。
我想我错过了什么,但我不知道是什么。
我希望我已经足够清楚了,如果您需要更多详细信息和信息,我会提供给他们。
谢谢。