80H($DATA)属性分析 | 数据恢复迷

80H类型属性即$DATA属性,该属性容纳着文件的内容,文件大小一般指的就是未命名数据流的大小。该属性没有最大最小限制,最小情况是该属性为常驻属性,可以不占用除MFT以外的空间。

常驻80H类型属性结构

常驻80H类型属性结构见表4-64,在标准属性头后面是文件的内容。

表4-64 常驻80H属性描述

字节偏移 字段长度(字节) 含义
标准属性头(已分析过)
00H 文件内容

当文件属性能够在文件记录中完全存储下来而不需要存储到其他的Data Run(数据流)中时,这种属性就是常驻属性。

一个常驻80H类型的属性实例如图4-423,在标准属性头后面是该文件的内容。该内容以“00H”结束,这是因为文件属性的长度总是8的整数倍,当属性结束时并没有达到一个能被8整除的数字时就用“00H”来填充。

图4-423 常驻80H属性

非常驻80H属性结构

在NTFS文件系统中常用数据流有:

①[未命名]([Unnamed])

②{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}

③^EDocumentSummaryInformation

④^ESebiesnrMkudrfcoIaamtykdDa

⑤^ESummaryInformation

⑥$MountMgrDatabase

⑦$Bad

⑧$SDS

⑨$J

⑩$Max

(1)未命名数据流

80H属性的第一个未命名数据流也就是文件真正的数据,由Data Run来记录其属性体即文件数据的具体地址。下面以$MFT文件自身的文件记录中的80H属性为例,其结构如图4-424所示。

图4-424 80H属性的未命名数据流

Data Run详细含义的描述见表4-65。

表4-65 Data Run含义的描述

字节偏移 字段长度(字节) 描述
第一个Data Run的含义描述 0x00 1  高4位为Data Run(数据流)的起始簇号在这个压缩字节中所占的字节数(N);低4位表示Data Run所占用的簇数在该压缩字节中占用的字节数(L)
0x01 L  Data Run(数据流)所占用的簇数
L+1 N  Data Run(数据流)的起始簇号
第二个Data Run的含义描述 L+N+1 1  高4位为Data Run的起始簇的相对簇数在这个压缩字节中所占的字节数(N1);低4位表示Data Run所占的簇数在该压缩数据中占用的字节数(L1
L+N+2 L1  Data Run所占用的簇数
L+N+L1+2 N1  Data Run的起始簇的相对簇数,将此值加上第一个Data Run位置描述中的起始簇号,就是该Data Run的起始簇号(注意该值为带符号数)
第三个及以后的Data Run含义同第二个Data Run …… …… ……

图4-424所示的例子,该数据属性的Run List值为“32 0C 1B 00 00 0C”,其具体含义如图4-425所示。

图4-425 Run List的结构及含义

从图4-425可以看出,该属性体的起始簇号为0C0000H,占1B0CH簇。

(2)文件的摘要信息

在NTFS卷中有些文件是有文件摘要的,如图4-426所示。这些摘要包括描述和来源两个部分,其中描述包括标题、主题、类别、关键字、备注等信息,而来源包括来源、作者、修订版本号码等信息。

图4-426 文件摘要

而这些数据被存储在一组四条命名数据流中,它们分别是:

{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}

^ EDocumentSummaryInformation

^ ESebiesnrMkudrfcoIaamtykdDa

^ ESummaryInformation

值得注意的是,后3个命名数据流的名字中的符号“^”是CTRL-E(05H),这样做的原因可能是不让普通用户访问该流。而{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}流的内容总是为空,如图4-427所示。

图4-427 {4c8cc155-6c1e-11d1-8e41-00c04fb9386d}数据流

从{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}数据流的属性头中可以看出,虽然其为非常驻属性,但是不论是系统分配给该属性的大小还是属性真实大小和最初的属性大小都是0,也就是说该数据流为空。

再来看看其他3个命名数据流,见表4-66。其中有几个数据的具体含义并不清楚,有兴趣的读者可以做进一步的研究。

表4-66 包含文件摘要的数据流

数据流 包含的文件摘要 数据类型
^EDocumentSummaryInformation 类别 ASCII码
^ESebiesnrMkudrfcoIaamtykdDa 来源 Unicode编码
^ESummaryInformation 标题 ASCII码
主题 ASCII码
作者 ASCII码
关键字 ASCII码
备注 ASCII码
修订版号码 ASCII码

(3)$MountMgrDatabase Data Stream

该数据流只存在有重解析点的卷上。

(4)$Bad

坏簇数据流,该数据流只有在$BadClus元文件中才有,它是一个记录卷中簇的情况的数据流。任何好的簇、未用的簇及坏簇,都将在对应的位置做标记。NTFS不会像FAT系统那样提示“Abort,Retry,Fail?”,如果系统运行时新的坏簇被发现,系统将这个坏扇标记到坏簇文件($BadClus)中。

(5)$SDS

安全描述流($SDS),只有在$Secure元文件中才有,它包含了卷中所有安全描述列表。

(6)$J、$Max

这两个数据流只有$Extend\$UsnJrnl元文件中才有。

(0)

相关推荐

  • ASCII码

    精华 | 2020年全年工控技术文章汇总 ,全在这儿!

  • pyaudio:基于pyaudio利用Python编程实现播放音频mp3、wav等格式文件

    基于pyaudio利用Python编程实现播放音频mp3.wav等格式文件 输出结果 实现代码 T1.while循环输出数据流的方法 def play(): chunk=1024 #2014kb wf ...

  • C# FileStream类

    C# FileStream类 在 C# 语言中文件读写流使用 FileStream 类来表示,FileStream 类主要用于文件的读写,不仅能读写普通的文本文件,还可以读取图像文件.声音文件等不同格 ...

  • E0H($EA)属性分析 | 数据恢复迷

    E0H类型属性,即$EA,也就是扩展属性,它用于在NTFS下实现HPFS.由于其数据流可能增长,所以该文件属性可能是非常驻的.该属性没有最小字节数限制,但最大只能达到65 536字节.扩展属性由&qu ...

  • B0H($BITMAP)属性分析 | 数据恢复迷

    B0H类型属性即$BITMAP,也就是位图属性,该属性是由一系列的位构成的虚拟簇(VCN)使用情况表,它没有最大最小限制.该属性目前用在两个地方:索引和$MFT中.在索引中,每一位代表索引分配中的一个 ...

  • NTFS的EFS加密分析 | 数据恢复迷

    NTFS文件系统能够支持EFS加密文件系统(Encrypted File System).EFS提供的文件加密技术可将加密的NTFS文件存储到磁盘上,并且特别考虑了其他操作系统上的现有工具引起的安全性 ...

  • 元文件$UsnJrnl分析 | 数据恢复迷

    元文件$UsnJrnl是变更日志文件,作用是记录文件发生的改变,文件一旦改变,其变化会记录在元文件$UsnJrnl中一个被命名为$J的数据属性中.$J数据属性具备稀疏属性,由变更日志项组成.$UsnJ ...

  • 元文件$Reparse分析 | 数据恢复迷

    $Reparse是重解析点文件,Windows 2003.Windows XP等系统可以将卷装载在目录中进行重新解析.$Reparse一般包含3个属性,如图4-465所示. 图4-465 $Repar ...

  • 元文件$Quota分析 | 数据恢复迷

    $Quota文件最初出现在Window NT中,但没有被使用,到了Windows 2000及其后续版本$Quota文件用于跟踪磁盘配额,以用户和卷来进行计算.该文件一般包含4个属性,如图4-464所示 ...

  • 元文件$ObjId分析 | 数据恢复迷

    卷中的每个文件都有一个唯一的ID号,$ObjId存放着该卷上使用的所有$Object_ID属性的一个索引.$ObjId一般有4个属性,如图4-463所示. 图4-463 $ObjId的文件记录 (1) ...

  • 元文件$Extend分析 | 数据恢复迷

    $Extend文件是一个包含$ObjId.$Quota.$Reparse和$UsnJrnl四个元文件的目录. $Extend文件一般包含3个属性,如图4-462所示. 图4-462 $Extend的文 ...

  • 元文件$UpCase分析 | 数据恢复迷

    $UpCase是一个完整的大写字母组成的128KB大小的文件.Unicode字母表中的每一个字符,在这个文件中都有一个对应的条目,用于比较和对文件名进行排序. $UpCase一般有3个属性,如图4-4 ...