【发布时间】:2014-11-19 04:00:58
【问题描述】:
在尝试对闪存驱动器进行数据恢复时,我正在尝试编写一个可以搜索 FAT 目录条目的工具。由于我不能依靠 FAT 来告诉我去哪里看,我正在对驱动器扇区进行简单扫描(实际上是驱动器的图像转储)。
问题是我找不到任何有关如何检测扇区/群集是否包含 FAT 目录条目的信息。我知道structure of a directory entry,但不知道如何检测一堆给定字节是否实际上包含一个。
查找子目录的开始非常简单,因为您可以在字节 0x00 处搜索 .,在字节 0x20 处搜索 ..,但这仅对子目录,不是后续扇区,也不是根目录或其他位置的子目录碎片。
我尝试使用日期范围、文件大小、集群范围、无效文件名字符作为粗略的指导,但当然,这不太可靠。
如果我在磁盘编辑器中打开图像并按住 PgDn 键,我的大脑可以检测到包含有效目录条目的扇区何时通过我的视野,但这怎么可能在程序中实施?有没有办法检测 FAT 目录项?
【问题讨论】:
-
是的,我都看过(事实上,我的问题的唯一链接是您链接到的维基百科页面)。也没有说任何关于识别标记的事情,只是布局。没有理由不能将随机的一堆字节解释作为目录条目。我正在尝试确定是否有办法确定它是否是有效目录条目。
-
看看tavi.co.uk/phobos/fat.html ,即“文件属性”部分,它说 0x10 '该条目描述了一个子目录。'
-
这表明所指向的特定条目是一个子目录,但它没有说明条目本身。它可能是
0x10偶然,并且作为 FAT 目录条目完全无效。
标签: data-structures directory detection fat