1.1?实验名称
磁盘格式与数据恢复
1) ????了解磁盘的物理和逻辑结构
2) ????熟悉?FAT32 文件系统
3)?????学会使用磁盘编辑软件
4) ????了解文件删除、格式化的基本原理
5) ????能够利用工具或者手工恢复被删除的文件
第一阶段:
n?熟悉磁盘工具的使用。
n 利用?WinHex?查看物理磁盘和逻辑磁盘。
n?了解?WinHex?中相关工具的用法。
第二阶段:
?分析本地硬盘的主引导扇区
?利用磁盘编辑工具查看?MBR?磁盘分区并分析:?n 主引导扇区由哪些部分组成?
n?四个主分区项的内容各代表什么?
n?分析主扩展分区表的结构。
n 通过分区项来确定每个本地逻辑盘的位置以及大小,并画出本地硬盘的逻辑?结构。
n 每个本地盘的开始扇区位置,总扇区数,结束扇区位置,各扩展分?区表扇区位置,保留空间数量。
?利用磁盘编辑工具查看?GPT?磁盘分区并分析
n GPT?分区结构与?MBR?的具体差异有哪些?
n 主分区头所在扇区包括哪些重要内容,验证这些重要内容的有效性。?n 通过分区节点分析自己硬盘的各分区信息。
第三阶段:
?熟悉?FAT32?文件格式。
n 用?WinHex?打开某个?FAT32?分区格式的逻辑盘。
n 查看?该逻?辑盘?的起始?扇?区?,?分?析起始?扇?区?中?的?相?关?字段(BPB:BIOS Parameter?Block)。
n?查看?FAT1?和?FAT2?的内容和大小。
n?查看该逻辑盘的根目录区。
n 查看某个文件的目录项结构和?FAT?链以及具体存储位置。
n 在根目录下建立文本文件:test-学号后?3?位.txt,其中填充?60K?左?右的文本字符保存(注意:先行存储其他数据使得该文件的首簇高?位不为?0)。
n 查看该文件的目录项,对其进行分析,并得到该文件所在位置以及?大小。
n 查看首簇位置,并得到簇链表。通过簇链表查看该文件内容。?n 记录首簇位置(14H-15H,1AH-1BH)和文件大小(1CH-1FH)。
第四阶段:
?手工恢复被删除的文件
n 删除前面所建立的文件。(del&shift+del)
n 利用?WinHex在该文件所在盘符查找该.txt?文件的目录项。?n?查看目录项的变化。
n 利用该残余目录项来计算被删除的文件所在的位置。
n 手工恢复该文件(文件名、首簇高位、簇链表修复)。
习题思考:
?在磁盘分区过程中,用户提供了哪些信息?分析分区工具的工作原理。
?高级格式化与低级格式化的具体原理和区别是什么?
?查找资料,对?NTFS?分区的总体结构进行分析,尝试对?NTFS?下删除的文件进行手?工恢复。
?用数据粉碎工具(如金山、360?、Strongdisk?等)粉碎指定文件,分析其数据粉碎原?理。
?通过分区表看到的分区字节数为何与资源管理器中看到的分区字节数有差异?
?如果删除的文件是长文件名,如何恢复所有文件名。
1.4.1 WinHex 使用
使用管理员模式打开?WinHex?,点击菜单栏工具可以选择想要打开的磁盘,?如图?1.?1 所示。
图?1.?1??打开磁盘
点击确定即可打开相应磁盘,包括逻辑盘和物理盘,如图?1.2 所示。上半部?分显示的是磁盘的文件目录,下半部分显示的是磁盘的数据区数据信息。
图?1.2 ?使用?WinHex?查看磁盘
本实验主要是用?WinHex?的跳转功能。点击菜单工具栏可以进入指定的偏移或地址。选择导航可以看到相应的功能,如图?1.3 所示。
图?1.3 WinHex?导航工具的使用
转到偏移量可以选择基地址以及偏移量跳转到自己想要到达的地址;跳至扇?区可以通过扇区为单位进行跳转。文件记录功能主要用于文件恢复过程中,利用?其跳转到簇链表相应的位置。
在对磁盘进行修改之后,由于 WinHex??没有更新磁盘信息,需要重新对磁?盘进行快照,如图?1.4 ?所示。
图?1.4 ?重新对磁盘进行快照
1.4.2.1?MBR 分区类型
使用?Winhex?打开一个?MBR?分区形式的磁盘,这里我打开的是插入电脑的、?2T?大小的?U?盘,分配分区为?F。
图?2.?1 F 盘的主引导扇区
如图?2.1?所示,从偏移为?0?到?512?字节(图中前?32?行)是硬盘的主引导扇?区。它是硬盘第一个扇区,由主引导记录(MBR)、硬盘主分区表(DPT)和引导?扇区标记(ID)三部分组成。
其中,主引导记录?MBR:从?0?开始占用?446?个字节,存放系统主引导程序;?硬盘主分区表?DPT:占用?64?个字节(446-510),它有四个分区项,每个项?16?个?字节,最后?8=4+4?个字节存放相对扇区地址和该分区占用的扇区数量。
通过 WinHex?自带的分区表-模板,查看物理硬盘的结构,如图?2.2?所示
图?2.2 WinHex?的分区表-模板查看?MBR?分区表结构
前?446?个字节是其引导代码,从?446?开始是硬盘分区表,最后以标志?55AA?结尾。每一个分区表项的长度是?16?个字节,如图?2.3?所示。
图?2.3 ?硬盘分区表?DPT??内容
1.4.2.2?GPT?分区类型
使用?Winhex?打开一个?GPT?形式的硬盘,这里我打开的是电脑的本地磁盘,?如图?2.4?所示。
图?2.4 GPT?磁盘信息
利用 WinHex?自带的分区表模板,查看 GPT 磁盘的分区表信息(这里使用?的是?16?进制表示),如图?2.5?所示。
图?2.5 WinHex?的分区表-模板查看?GPT?分区表结构
可以看到?1BEH-1CAH?是磁盘保护性的主引导记录?MBR,从?200H(512)-258H?是磁盘的分区表。从?0x400H(1024)开始是?GPT?磁盘的第一个分区表项。
分区表项中存储了对应分区的起始?LBA,LBA?即逻辑地址块,是?GPT?分区形?式的基本单位,每一个?LBA?的大小也是?512?个字节。
分区表项?1?中,起始?LBA?块是?34,终止?LBA?块是?262177,这意味着分区?1?共有?262177-34+1=262334?个?LBA?块,即大小为?262334*512/1024/1024=128MB,?计算结果与分区?1?大小相符。
GPT?与?MBR?分区的具体差异:
1、MBR?分区表最多只能识别?2TB?左右的空间,大于?2TB?的容量将无法识别?从而导致硬盘空间浪费;GPT?分区表则能够识别?2TB?以上的硬盘空间。
2、MBR?分区表最多只能支持?4?个主分区或三个主分区+1?个扩展分区(逻辑分?区不限制);GPT?分区表在?Windows?系统下可以支持?128?个主分区。
3、在?MBR?中,分区表的大小是固定的(4*16=64?个字节);在?GPT?分区表 头中可自定义分区数量的最大值,也就是说?GPT?分区表的大小不是固定的(在本?系统中最大是?0x200H=512?个字节)。
用?WinHex?打开一个?FAT32?格式的逻辑盘,如图?3.1?所示。
图?3.?1 FAT32?磁盘
通过?WinHex 自带的引导扇区-模板,查看该逻辑盘的起始扇区,分析起始扇?区中的相关字段,如图 3.2 所示。
图?3.2 WinHex?引导扇区模板
其中,0-3?是其固有的字段,从?0xBH?开始,到?0x20H?是该逻辑盘对应的?BPB?(BIOS Parameter Block,BIOS?参数块)字段。通过?BPB?可以查看这个磁盘的 基本信息。如每个扇区的字节数为?512?字节,每个簇有?8?个扇区。
FAT32?Selection?是该?FAT32?文件系统的一个表,从表中可以看到每一个?FAT?的扇区数是?5105,最后在偏移量?1FE?处也是以?55AA?标志结尾
接着,往?FAT?分区中添加两个新文件,如图?3.3?所示。
图?3.3 FAT 文件系统
其中,FAT1?和?FAT2?的用途是存储簇链表,由于簇链表至于?FAT?分区十分重?要,所以存放两个用于备份。
在根目录区可以看到?FAT?文件系统为每个文件建立了索引,每个索引中记录?了对应文件的相关信息。如图?3.3、图?3.4?所示,可以使用?WinHex?根目录-模板?查看文件。
图?3.3 hello-2.5.exe?的索引信息
图?3.4 ctf?竞赛指南?pwn.pdf?的文件信息
可以发现,其中?hello-2.5.exe?的文件名是?HELLO-~1,扩展名是?EXE,创建?时间是?2022/9/28-16:48:04,簇高位号为?0,文件大小是?2560Bytes=2.5KB。
在根目录下新建文本文件,命名为?test-204.txt,并在其中填充?60KB?左右?的文本保存。更新磁盘快照,利用?WinHex?查看?txt?文件的簇,如图?3.4?所示。
图?3.4 ?右击文件-导航-列出的簇可以查看文件的簇信息
可以看到该?txt?的簇首号是?589826,共包含?16?个簇。如图?3.5?在?G?盘查看?文件属性,文件实际大小是?61.6KB,但占用了?64.0KB?的空间。由之前的引导扇?区模板可以得到,当前系统一个簇含?8?个扇区,每个扇区?512?个字节,总大小就?是?16*8*512/1024=64KB。
图?3.5 ?本地查看?txt?文件的大小
下面根据文件占用的簇跳转到文件内容的位置。
首先找到首簇位置并查看簇链表。在?WinHex?中选择导航-跳转到 FAT 记录-?填写首簇?589826,跳转到簇链表对应位置。由于是?FAT32?系统,簇链表中每个 结点大小是?4?个字节,文件占用?16?个簇,在簇链表中便占据?64?个字节,如图??3.6?所示,高亮部分即?txt?文件的占用的簇链表。
图?3.6 txt?文件的簇链表
其中,簇链表首节点值是?0x00090003H=589827,可以发现访问首簇号节点 对应的值默认是首簇号+1。原因是在?FAT32?文件系统中?FAT?表使用的存储方式是?连续存储。
接着,通过簇链表查看该文件内容。记录下文件的簇链表,在?WinHex?中选?择导航-跳至扇区-填写簇?589826,可以发现跳转到了?txt?文件存储处,如图?3.7?所示。
图?3.7 ?通过簇链表查看文件内容
根据目录项的定义,一个目录项占据?32?个字节,00H-07H?字节表示文件名,?1CH-1FH(0x0000F692=63122)是文件的占据的字节大小,打开?WinHex,利用模?板跳转到 test-204.txt 的目录项所在的位置,如图?3.8?所示。
图?3.8 txt?文件目录项
目录项中第?14H-15H?字节是?0009,表示簇高位为?9,1AH-1BH?字节是?0002,?两者组成的首簇号是?0x00090002A=589826,正是该文件之前查看的首簇号。
在本地?shift+del?删除?txt?文件,更新立磁盘快照。虽然在?WinHex?中无法?查看到文件,且?FAT?记录(簇首链)被清?0?如图?4.1?所示,但其对应的数据仍然?存在,如图?4.2?所示。
图?4.?1 ?彻底删除后?FAT?记录被清?0
图?4.2 ?彻底删除后数据依旧存在
进一步找到原来文件在目录表中对应的位置,如图?4.3?所示。发现目录项首?字节在文件删除后被进行了修改成?E5,表示被删除标记。
图?4.3 ?文件首字节被改为?E5 标志删除
选择?E5?所在字节,右键编辑-填充选块,将?E5?随便修改成任意数据,选择??文件-保存扇区,可以发现文件已经可以在本地查看到了,如图?4.4?所示,但是??文件名会根据修改数据改变首字母(修改?E5?需要为有效字符,否则看不到文件)。
图?4.4 ?本地可以查看到该文件
但此时打开?txt?文件会报文件损坏错误,因为?shift+del?会清除簇链表,现?在文件目录中的文件并没有与相应的?FAT?分区相关联。因此,还需要修改?FAT ?记录相应位置,如图?4.5?所示。应该注意的是,簇链表第一项的值应该为首簇号?+1。
图?4.5 ?修复簇链表
新建一个超过?100KB?的?DOCX?文件,其目录表如下图所示。簇首是?0x00000024H。
如图所示是为其分配的簇链表,共?65?项,?占?65*8*512/1024=260KB。
通过分区表看到的分区字节数为何与资源管理器中看到的分区字节数有差??异是因为我的电脑系统一个簇是?8?个扇区,4KB,65?个簇正是?260KB,这就是文?件实际的占用大小。257KB 文件需占用?65?个簇才可以存下。
NTFS?与?FAT32?是两种不同的磁盘文件系统格式,它们之间的差异有以下几?点。
1、磁盘分区容量区别
NTFS?可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到?2TB?(2048GB),而?Windows ?2000?中的?FAT32?支持分区的大小最大为?32GB。?2、单个文件容量区别
FAT32?在实际运行中不支持单个文件大于?4GB?的文件,一旦超过容量限制那?么系统就会提示磁盘空间不足。
NTFS?就目前来说已经突破了单个文件?4GB?的容量限制,?目前来说似乎没容?量限制,只要硬盘空间容量有多大,那么就?NTFS?就可以分到多大。
因为现在的很多应用程序以及游戏大作都超过了?4GB?容量,因此用户必须将?大程序安装的磁盘改成?NTFS?格式。
3、安全方面区别
可以针对电脑用户对该格式下所有的文件夹、文件进行加密、修改、运行、?读取目录及写入权限的设置。此外,在磁盘分区下任意文件夹或文件上右键属性,?在高级属性窗口中勾选中加密内容以便保护数据即可做到加密。
FAT32?文件安全设置:不支持;
NTFS?文件安全设置:支持。
4、磁盘配额的区别
在一台电脑有多个用户使用时,而作为系统管理员,可以给用户设置不同的?磁盘空间容量,被设置用户只能使用这个被限额的磁盘空间。
如:管理员设置用户?A?的?D?盘磁盘配额为?1GB,那么用户?A?在使用电脑时,?E?盘他只能用?1GB?的空间,多的用不了。
FAT32?磁盘配额:不支持;
NTFS?磁盘配额:支持。
5、磁盘利用率区别:
在Windows2000?的?FAT32?文件系统的情况下,分区大小在?2GB~8GB?时簇的大?小为?4KB;分区大小在?8GB~16GB?时簇的大小为?8KB;分区大小在 ?16GB~32GB?时,簇的大小则达到了?16KB。
而?Win ?2000?的?NTFS?文件系统,当分区的大小在?2GB?以下时,簇的大小都比?相应的?FAT32?簇小;当分区的大小在?2GB?以上时(2GB~2TB),簇的大小都为?4KB。
相比之下,NTFS?可以比?FAT32?更有效地管理磁盘空间,最大限度地避免了?磁盘空间的浪费。
6、系统文件压缩的区别
在磁盘分区中任意文件中右键属性,我们在高级属性窗口中可以设置给单个 ?文件或整个文件夹压缩,压缩之后可以一定程度上节省占用磁盘空间的容量大小。?而且当对文件进行读取时,文件将自动进行解压缩;文件关闭或保存时会自定对 ?文件进行压缩。
FAT32?系统文件压缩:不支持;
NTFS?系统文件压缩:支持。
7、磁盘碎片方面的区别
从?FAT16?的文件系统格式,到之后的?FAT32?然后再到现在的?NTFS?文件系统?格式,我们就会发现从磁盘分区的格式不同,那么所产品的磁盘碎片也是越来越?小。
FAT32?磁盘碎片:产生的磁盘碎片一般;
NTFS?磁盘碎片:产生的磁盘碎片较少。
8.、现实应用中区别
NTFS 目前多用于电脑、移动硬盘等各种大中型空间容量的磁盘。?FAT32?却多用于?U?盘、内存卡等小型磁盘。
综上,我们可以看出:NTFS?文件系统与?FAT?文件系统相比,功能更强大,?适合更大的磁盘及分区,且磁盘利用率还很高,安全性与稳定性也杠杠的,想较?FAT32?是更为完善和灵活的文件系统。
文件名过长时恢复文件后需要手工查看文件数据区的文件名进行恢复。