1. 主页
  2. 文档
  3. exFAT文件系统结构
  4. exFAT目录结构

exFAT目录结构

为了解释exFAT的特点,举例说明传统的FAT系统的目录结构。图11显示了FAT32的子目录。

图 11 Winhex显示FAT32的子目录的特殊指针

因为WinHex支持FAT和FAT32,它提供目录模板,运行FAT目录模板看一下这两个特殊的目录。

图12 WinHex显示的FAT32“.”目录模板

图13 WinHex显示的FAT32“..”目录模板

图12和图13显示存在FAT和FAT32子目录中两个特殊的文件名,存在于每个子目录的前两个项。“.”目录项所描述的“起始簇号”是子目录本身所在的簇号。“..”目录项所描述的“起始簇号”是上一级目录的起始簇号,它们只存在于子目录中,而不存在于根目录中。exFAT规范中显示,在目录项记录中不存在这两个特殊的文件名,当列出目录时,就好像这两个文件名存在一样。这两个特殊的目录已经从实际的存在转换成概念性的存在,这与传统的FAT文件系统不同。

微软把目录中的项目分为关键项或非关键项。关键项是系统操作所必需的,非关键项是可选的。除了文件和子目录以外,所有的关键项必须位于根目录中。

非关键项可能为法证人员提供重要的信息。当挂载exFAT文件系统时,期望的是只要关键项没有问题就可以挂载成功。挂载时文件系统必须知道所有定义的关键项,如果找到任何一个未知的关键项,就不能挂载这个文件系统。然而在挂载时文件系统会忽略非关键项。

这是非常有意思的,这允许把关键项修改成非关键项,甚至在文件系统中创建一个非关键项进而形成另一个文件系统。如果有人想要创建并隐藏一个文件,创建一个非关键项并指向数据所在的簇,文件系统会忽略这些项。如果同时更新了位图分配表中相应的位来阻止损坏数据,则文件虽然有分配的空间但是浏览目录时不会列出这个文件。揭开这种隐藏数据的方法是一个字节一个字节地检查文件系统。

目录项同时也分成主项和辅助项,在exFAT中辅助项只存在于文件或是子目录的定义中。主项和辅助项都有明确的定义,当他们组合在一起时叫做目录项集,这是一组目录项的集合。

表9 项目类型分类

类型区域 偏移 大小
是否使用 7 1
类别 6 1
是否重要 5 1
代码 0 5

表9提供了项目类型的结构,第一个字节用来识别目录中的每一个项。0x00是目录结束的标志,0x80没有定义。可以用以下的值来确定主项/辅助项和关键项/非关键项:

l         是否使用:   0-没有使用         1-使用

l         类别:          0-主项              1-辅助项

l         是否重要:   0-关键项            1-非关键项

l         代码:          用来识别项

文章

我们要如何帮助您?

评论 抢沙发

评论前必须登录!