1. 主页
  2. 文档
  3. exFAT文件系统结构
  4. exFAT目录结构
  5. 大写字符表目录项

大写字符表目录项

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

类型区域 偏移 大小
是否使用 7 1 1
类别 6 1 0
是否重要 5 1 0
代码 0 5 00010
保留 1 3
表校验 4 4
保留 8 12
第一簇 20 4 第一个数据块的簇地址
数据长度 24 8 数据的长度

大写字符表是为特定的操作(例如将文件名转换成大写字母)而准备的。大字字符的文件名在目录中是保留,但是特殊的操作可以看到这个文件名。

“第一簇”区域指向大写字符表的开始。“数据长度”是这个表的大小字节数。这个表有一个校验值,使用这个表之前先检查这个校验值。下表提供如何计算这个校验值。

表13 大写字符表的校验计算代码

UINT32 UPCASEChecksum(const unsigned char octsts[],long NumberOfBytes)

{  UINT32 Checksum = 0;

long Index;

for (Index = 0; Index < NumberOfBytes; Index++)

{

Checksum = ((Checksum <<31) | (Checksum>> 1)) + (UINT32) octsts[Index];

}

return Checksum;

}

大写字符表比较小,小于6000个字符。假设文件系统的簇大小为128KB。可能有100KB的空间没有使用,可以用来隐藏数据。如果簇大小是32MB昵?这个簇的位置执行DIR命令不会显示,也不会移动到其它位置,在碎片整理时也不会重新定位,也不会被操作系统修改或覆盖。校验只针对大写字符表本身但不包括空闲区域,可以使这重要的目标空间不成为犯罪隐藏数据的地方。

我们要如何帮助您?

评论 抢沙发

评论前必须登录!