文件系统取证分析-卷的检验分析
技术无好坏,人品有高低;
前述:
在取证过程中,取证的检材/证据一般都是来自硬盘,也可以说是硬盘驱动器;
接下来会从内部结构、硬盘分区等,进行逐一阐述;
4.1 硬盘结构和磁盘分区
基础了解
术语 | 含义 |
表 | 表是按预定结构排列的相关数据合集 |
表项 | 表由大小相同、排列的表项或行组成,表项数多以0开始,如:0,1,2,3,... 每一个表项都有对应的编号,项数依次递增; |
族 | 对应椅子数据块,通常占用4KB(操作系统分配的最小储存空间) |
族链 | 构成一个完整文件的 一组 族 |
数据块 | 最小的数据存储单元,通常为512字节,也称为扇区 |
数据集合 | 数据库的 集合 (镜像等),可以从中恢复文件 |
文件头 | 包含文件开头标记的首个数据块 |
文件碎片/片段 | 一组按顺序排列的数据块,仅构完整文件的一部分,被 不相关的 数据块 与 文件 其余部分 分割开 |
文件尾 | 包含文件结束标记的最终数据块 |
注:
字节
字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也表示一些计算机编程语言中的数据类型和语言字符。
常见字节类型及大小关系:
bit —>1 bit = 1/0 的二进制byte—>1 byte= 8 bitkb—>1kb=1024 byteMb—>1Mb=1024 kbGb—>1Gb=1024MbTb—>1Tb=1024GbPb—>1Pb=1024Tb
参考资料:
https://blog.csdn.net/fancynthia/article/details/122461779
4.1.1 硬盘结构
简述:
存储设备分很多种类型,如:硬盘、usb驱动、固态驱动、软盘等等,最常见的就是硬盘;
硬盘结构
磁盘的组成:
注:
数据存储在磁盘表面上的微小同心磁道中,磁道从磁盘的内边到外边逐渐排列展开;
一个柱面中的磁道数量是盘片上数量的二倍,柱面=磁盘面;
磁盘-n个扇区,每个扇区大小是512字节,新型硬盘会使用4096字节(4kb)扇区,称为高级格式标准
磁盘出厂是没有磁道和扇区的,一个空盘(没办法存储数据)
磁盘格式化又称:低级格式化,就是在盘片表面排列数据地址;
扇区是最小的可寻址单元(块);
磁盘寻址方式
寻址大概分为两种寻址方式:
1.C/H/S(Cylinder-柱面/Head-磁头/Sector-扇区)寻址模式,又称三纬地址模式
只要确定柱面号、扇区号和磁头号就能唯一的访问到存储在某一位置的数据,也就是说通过chs寻址可以唯一的定位到具体扇区;
早期磁盘上磁道分63个扇区,物理磁头最多16个(八个盘片)
CHS是一个三元组,组成:
1.一共24bit位
2.柱面号--10位,磁头号--8位,扇区号--6位数
3.最大寻址空间
GHS容量计算:
磁盘容量=柱面数量*磁头数*扇区数*扇区容量
2.LBA(逻辑块地址)
在LBA地址中,地址不再表示实际硬盘的实际物理地址(柱面、磁头和扇区)。LBA编址方式将 CHS这种三维寻址方式转变为一维的线性寻址,它把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了 烦琐的磁头/柱面/扇区的寻址方式。在访问硬盘时,由硬盘控制器这种逻辑地址转换为实际硬盘的物理地址。
LBA扇区=(((柱面号 * 每柱面磁头数)+ 磁头号 ) * 没磁道扇区数 ) + 扇区号 - 1
LBA容量计算:
137GB容量=地址位:28,扇区数:2的28次方 - 1
144PB容量=地址位:48,扇区数:2的四十八次方 - 1
磁盘卷:
磁盘上可寻址山区的集合的合称就是磁盘卷;
参考资料:
https://zhuanlan.zhihu.com/p/42421879
https://blog.csdn.net/HandsomeHong/article/details/123101771
https://baijiahao.baidu.com/s?id=1700791672175613732&wfr=spider&for=pc
https://zhidao.baidu.com/question/399919099294583445.html
4.1.2 磁盘分区
一块磁盘被划分多个区域,称为分区;一个分区称为一个逻辑存储单元也称逻辑存储空间;
每个分区可以使用不同的文件系统;
文件系统:
是一种特殊的数据结构,可以使文件保存到磁盘上,并可以访问这些文件;
是以操作系统可以管理的方式组织的文件集合;
分区的优势:
§允许备份磁盘镜像
§易于恢复,可防止文件系统损坏;
§使用所有操作系统均支持的文件系统格式化分区,便于在不同的操作系统间共享数据;
§提高数据访问性能;
§缩短行程,加速读写;
o分区的缺点:
§每个分区可以使用的连续数据块(族)的大小会变小,容易出现碎片的情况;
§磁盘被分割,容量也会相应的减小,存储能力受到限制;
注:卷和分区链各个术语可以互换使用,但并非完全相同
4.1.3 DOS分区
简述:
DOS(磁盘操作系统)分区是比较常见的磁盘分区系统,也称是基于pc的分区/主引导(MBR)分区;
DOS分区通常称为MBR分区,使用这种分区的磁盘也称MBR磁盘;
MBR由三部分组成,分别为:
引导代码:MBR获得系统的控制权后,引导代码对其他代码信息进行检查,如查看是否有“55AA”有效标记,并进一步引导系统。
分区表:描述磁盘内的分区情况。
“55AA”有效标志:“55AA”标志通知系统,该MBR扇区是否有效,如果该标志丢失或损坏,磁盘将会显示为未初始化。
MBR扇区的基本结构
字节范围-十六进制 (主引导记录扇区内) | 字节数(字节长度) | 相对字节偏移-十六进制 (主引导记录扇区内) | 描述 |
0x000-0x1BD | 446 | 引导代码/代码区 | |
0x000-0x1FD | 64 | 分区表(含4个16字节的表项) | |
0x000-0x1FF | 2 | 引导记录签名 0x5AA | |
MBR总容量=446+64+2=512字节 |
计算机引导过程
分区表是用来说明物理磁盘布局的,一般情况下,分区表由4个16字节表逐层,每个表项都代表一个主分区
分区表项的基本结构
表项内相对便宜 (十六进制) | 字节长度 (十进制) | 字节范围 (十六进制) | 内容 |
0x0 | 1 | 0x0 | 可引导标示(0x80=活动分区) |
0x1 | 3 | x0a-0x3 | 起始XHS数值 |
0x4 | 1 | 0x4 | 分区类型描述符 (如:0X06=FAT16,0x07=NTFS,0X0B=FAT32) |
0x5 | 3 | 0x5-0x7 | 结束CHS数值 |
0x08 | 4 | 0x8-0xb | 起始扇区的LBS地址 |
0x0c | 4 | 0xc-0xf | 分区大小(扇区数) |
分区表项总大小:1+3+1+3+4+4=16字节 |
CHS 地址结构
CHS地址内相对字节偏移 (十六进制) | 十进制长度 (字节) | 内容 |
0x0 | 1 | 起始磁头号 |
0x1 | 1 | 起始扇区号位于第5~0位; 柱面号位的高2位,即9~8位,保存于7~6位; |
0x2 | 1 | 柱面号的低八位,即7~0位; |
CHS总大小:3字节 |
CHS 局限性(要求)
CHS | 最小值 | 最大值 | 位数 | 值数目 |
扇区 | 1 | 63 | 6 | 63 |
磁头 | 0 | 255 | 8 | 256 |
柱面 | 0 | 1023 | 10 | 1024 |
4.4.1 分区中的扇区寻址
分区中的扇区有两种寻址方式:
§LBA扇区寻址
LBA扇区地址从扇区0开始;
§扇区地址
扇区地址是相对于分区其实位置的距离,也成为了逻辑分区地址;
参考资料:
https://blog.csdn.net/liuying_1001/article/details/8333749?ops_request_misc=&request_id=&biz_id=102&utm_term=DOS%E5%88%86%E5%8C%BA%E8%AF%A6%E8%A7%A3&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-8333749.nonecase&spm=1018.2226.3001.4187
4.2 卷分析
涉及到基础;
4.2.1 磁盘布局分析
在对一个磁盘取证的时候,我们必备的知识就是,数据怎么存储到磁盘内的,又或者怎么对磁盘做一些改变;
§定位分区表:可以在偏移量0x1BE到0x2FD位置找到MBR中的分区表;
§偏移量:存储单元的实际地址与所在段的段地址这之间的距离;
§偏移量=逻辑地址与段首的差值;
§(不做过多介绍,了解即可,后续会在第五章文件系统在讲解)
§如果文件系统的大大小小小于分区大小小于分区,可能会存在卷残留空间;、
4.2.2 分区连续性检查
正常来说,一个磁盘创建多个分区,一般情况下会采用连续创建分区的方式。但也有可能出现某些原因,导致没有进行连续分区;
如果两个分区重叠会导致文件系统损坏,如果分区产生重叠,应该在进一步分析;
4.2.3 获取分区
可以使用dcfldd获取每一个单独的分区,并使用系统分区工具进行分析工作
具体会在后续进行阐述
4.2.4. 已删除分区的恢复
对于在实际情况中,犯罪嫌疑人为逃避网络的取证,会使用一些格式化or删除等操作,对硬盘内的证据进行删除or抹除,同样分区有的时候也会被删除或者是破坏掉;
当硬盘的某个分区被删除后,分区中的数据并不是被真正意义上的删除,而对应的表项会被清除,被删除的分区会变成为分配状态且数据不可访问;
想要恢复删除的分区,需要晓得(分区的其起始位置、大小、类型等重要的信息),然后把这个重要数据写入被删除的分区表项中;