1. 主页
  2. 文档
  3. exFAT文件系统结构
  4. exFAT目录结构
  5. 目录扩展流项目

目录扩展流项目

表 19 目录扩展流项的结构

字段名 偏移(字节) 大小(字节) 描述/值
项类型 0 1 0xC0

类型区域 偏移 大小
是否使用 7 1 1
类别 6 1 1
是否重要 5 1 0
代码 0 5 0
常规辅助标志 1 1
区域 偏移 大小
可能分配 0 1 0-       没有

1-       分配

没有FAT链 1 1 0-       有效

1-       无效

保留 2 14
保留1 2 1
文件名长度 3 1
文件名校验 4 2 用来查找目录
保留2 6 2
有效数据长度 8 8
保留3 16 4
第一簇 20 4 第一个数据块的簇地址
数据长度 24 8 数据的长度,如果是目录最大值是256MB
注意:如果“是否使用”是0(0x40)这可能是删除文件集的一部分。

目录扩展流项提供文件在磁盘上的位置和文件大小信息。同时它也提供了文件名的HASH可以用来加快目录的搜索。“第一簇”的地址指向这个文件的第一个簇在磁盘上的位置。

“数据长度”如果是0,可能没有对这个文件分配簇,同时文件在簇集中的“第一簇”通常也是0。因为簇集通常开始于第2簇(第0和第1簇没有定义),第一簇的0值不是真实的地址。如果没有给这个文件分配簇,“常规辅助标志”也显明FAT表链是无效的。

如果这个文件是删除的,这个项的第一个位“是否使用”现在设置成0,结果这个项类型是“0x40”。

下面的图详细说明目录扩展流项:

图23 Winhex显示删除前的0xC0目录项

图24删除前0xC0目录项的格式转换结果

 

图25 Winhex显示删除后的0xC0目录项

图26删除后0xC0目录项的格式转换结果

这是一个exFAT文件系统,它的簇大小为128KB,上图显示了一个大小为18290813字节的音频文件。为保存这个文件,需要140个簇。文件没有正好用完这140个簇,最后一个簇没有存满。这种情况下剩余空间为71805个字节,这足够隐藏一个文件。文件删除前分析工具需要检查FAT表和位图分配。程序的结果取决于位图分配表,它的第一簇是分配的。为了检查这140个簇是否都分配了,位图分配的140个位都需要检查,如果有FAT表链,需要访问FAT表来识别每一个簇的顺序。

如果在这个例子中“没有FAT链”设置成1(无效),那么这个文件的簇是连续的,也说明这个文件是没有碎片的。为了检查所有的簇是否分配,检查位图分配表中所对应的从簇148(第一簇)到簇287的信息。

在这个例子中删除这个文件,目录扩展流项的项类型从0xC0变成了0x40(如图25),其它区域保持不变,同时位图分配表中的簇148显示是未分配的,如果位图中的这个位显示是已分配,可能是这个簇在删除后已经被别的文件占用了,这个簇的数据已经被修改了。

法证人员检查FAT表链(如需要)和检查位图分配是非常重要的。如果删除文件的任何一个簇显示为已分配,这说明这个文件的这个簇已经由别的文件利用了,这个文件的数据由别的文件覆盖了。这个簇是如何被别的文件覆盖的情况很复杂,超出了这篇文章的范围。当恢复这样的删除文件时,这些情况需要取证人员或取证工具理解。

我们要如何帮助您?

评论 抢沙发

评论前必须登录!