第一阶段:

 

 熟悉WinHex的使用。

 

n 熟悉磁盘工具的使用。

 

n 利用WinHex查看物理磁盘和逻辑磁盘。

 

n 了解WinHex中相关工具的用法。

 

以管理员身份运行winhex(以便之后修改)

上方工具栏,工具,打开磁盘,可以按逻辑盘和物理盘来打开磁盘。

位置可以按扇区,偏移,FAT表跳转。

右键单击分区,点击template可以查看一些信息。

第二阶段:

 分析本地硬盘的主引导扇区

 利用

n 主引导扇区由哪些部分组成?

n 四个主分区项的内容各代表什么?

n 分析主扩展分区表的结构。

n 通过分区项来确定每个本地逻辑盘的位置以及大小,并画出本地硬盘的逻辑结构。

n 每个本地盘的开始扇区位置,总扇区数,结束扇区位置,各扩展分区表扇区位置,保留空间数量。

 

下图为实验室虚拟机的磁盘。

 

 winhex与磁盘格式与 数据恢复

 

下图为主引导扇区,主分区表

 winhex与磁盘格式与 数据恢复

 

1BE列开始为分区信息。

第一个分区:80 01 01 00 07 FE FF FF 3F 00 00 00 00 00 80 02

80代表为主分区,07表示为NTFS格式。00 00 00 3f H为起始扇区。(因为有一个扇区为主引导扇区,且有62个扇区保留,固从3fH63号扇区开始)。02800000H是扇区数,一扇区512字节,计算后为20.0GB

类似的,0b表示为FAT32格式,0f表示扩展分区。

0000003fH + 02800000H即为0280003fH,是下个分区的起始扇区号,与图中显示一致。

第二个分区:00 FE FF FF 07 FE FF FF 3F 00 80 02 00 00 40 01

起始扇区 0280003FH,与上面的计算一致。 大小01400000H,为第一个分区的一半,10G

第三个分区类似,大小为C00000H个扇区,6G,起始扇区03C0003FH

值得注意的是第4个分区,大小为02FFEFC0H,计算为50327488个扇区,23.998016357421875GB,不是恰好24GB。起始位置0480003FH

 

打开第四个分区,可见分区表。

G盘,H盘的信息。

G盘大小01400000H个扇区,10GB,起始位置0000003FH。这里的起始位置是相对于主分区表中0480003FH的偏移。

H盘大小01BFEF81H29335905个扇区,13.99844GB,起始位置0140003FH

winhex与磁盘格式与 数据恢复

 

第三阶段:

 熟悉FAT32文件格式。

n 用WinHex打开某个FAT32分区格式的逻辑盘。

n 查看该逻辑盘的起始扇区,分析起始扇区中的相关字段(BPB:BIOS Parameter Block)。

n 查看FAT1和FAT2的内容和大小。

n 查看该逻辑盘的根目录区。

n 查看某个文件的目录项结构和FAT链以及具体存储位置。

n 在根目录下建立文本文件test.txt,其中填充60K左右的文本字符保存。

n 查看该文件的目录项,对其进行分析,并得到该文件所在位置以及大小。

n 查看首簇位置,并得到簇链表。通过簇链表查看该文件内容。

n 记录首簇位置(14H-15H,1AH-1BH)和文件大小(1CH-1FH)。

 

这里F盘就是FAT32格式的盘。00行,BC列0200H代表一个扇区512字节,D行20H代表一簇32扇区。于是一簇16kb。

F盘6GB,计算6*1024*1024/16得簇数,一簇在FAT表中占4字节,故计算得FAT表大小应为1.5M,事实上查看下图,确实为1.5M,计算正确。

以上信息也可以在Disk中右键template查看。

 winhex与磁盘格式与 数据恢复

 

F盘建立txt文件,test.txt,大小为57kb

 winhex与磁盘格式与 数据恢复

 

右键test.txtgo to directory entry可以查看目录项。

 winhex与磁盘格式与 数据恢复

 

八位00H-07H文件正名,08H-0AH三位扩展名,14H-15H为起始簇号高16位。1AH-1BH为起始簇号低十六位。1CH-1FH为文件字节长度。这里0000E219H,为57881字节。起始簇号000003C9H,为969号。

 

然后点击FAT32,右键go to FAT entry,输入969,可以转到test.txt的簇链表。如下图。

注意簇号从零开始,四字节一个簇号。然后每个位置的内容指向下一簇。最后一簇内容为0FFFFFFFH。

 winhex与磁盘格式与 数据恢复

 

第四阶段:

 手工恢复被删除的文件

n 删除前面所建立的文件test.txt。(del&shift+del)

n 利用WinHex在该文件所在盘符查找test.txt文件的目录项。

n 查看目录项的变化。

n 利用该残余目录项来计算被删除的文件所在的位置。

n 手工恢复该文件(文件名、首簇高位、簇链表修复)。

 

Shift+delete彻底删除。

删除后查看目录项变化。

 winhex与磁盘格式与 数据恢复

 

可见第一个字节变为E5。同时首簇号高位清零。(这里原本就是0,固待会恢复时无需再改)

看一下簇链表,发现被清空。

 winhex与磁盘格式与 数据恢复

 

然后开始恢复。

E5改为54T)。然后修复簇链表。

由于文件大小57kb,固分配四簇。

000003C9H处,根据上文,填上CA 03 00 00...

第四簇填0FFFFFFF

恢复完毕,这时打开F盘可以查看test.txt

 

 

磁盘结构分析

(1)磁盘结构图

 winhex与磁盘格式与 数据恢复

 

 

(2)磁盘结构分析重要过程、数据及分析结果

 

Winhex打开物理磁盘。查看start sectors

LBA0即为设备的第0个逻辑存储块。

LBA0可知格式为0xEE,为GPT分区表。

winhex与磁盘格式与 数据恢复

 

LBA1

02 00 00 00 00 00 00 00表示分区表项从LBA2开始。0x250行0-3列,80 00 00 00 表示共128个分区。4-7列,80 00 00 00表示每个分区表项大小128字节。

 winhex与磁盘格式与 数据恢复

 

 

LBA2

8A800H为分区3C盘,系统盘)起始扇区,结束扇区为C88A7FFH,计算得共99.999999523162841796875GB

还有分区名。

 winhex与磁盘格式与 数据恢复

winhex与磁盘格式与 数据恢复

 

 

 

类似的有F盘,分区6,起始扇区5788E800H,结束扇区74511FFFH,共482883583扇区,230.256835460662841796875GB

 winhex与磁盘格式与 数据恢复

 

 winhex与磁盘格式与 数据恢复

 

 

其余扇区类似,不再赘述。

 

 

打开C盘观察DBR

 winhex与磁盘格式与 数据恢复

 

 

可知文件系统IDNTFS,每扇区占用字节数为0200H,512字节。每簇扇区数08H,故每簇4kb

hard disk 右键template也可查看相关信息。

 winhex与磁盘格式与 数据恢复

 

0x30开始8字节为MFT起始簇号。C0000H786432 786432*8 = 6291456扇区(字节偏移为 6291456*512= 3221225472 ( 十六进制0xC0000000)

 winhex与磁盘格式与 数据恢复

 

 

Go to sector 转到 MFT

 winhex与磁盘格式与 数据恢复

 winhex与磁盘格式与 数据恢复

 

 

 

MFT表一项1kb,固下一项偏移为1024/16=40H

 

winhex与磁盘格式与 数据恢复

 

 

再看F盘。与C盘类似。

 winhex与磁盘格式与 数据恢复

 

 winhex与磁盘格式与 数据恢复

FAT32分区数据恢复

在虚拟机格式为FAT32H盘进行操作。

1FAT32逻辑磁盘基本信息描述

在H盘新建了2017301510029.txt,大小103kb

FAT32数据恢复过程

Shift+delete删除

打开winhex

查看到每扇区512字节,一簇8扇区。即4kb

 

 winhex与磁盘格式与 数据恢复

 

winhex查看目录项

 winhex与磁盘格式与 数据恢复

修改首字节,首簇高位。

 winhex与磁盘格式与 数据恢复

E5改为322),高位仍为00 00(这里是推测原来就是0000而不是不改)

得首簇号0000000AH。转到FAT表,第10簇。

103kb26簇。

恢复簇链表。

winhex与磁盘格式与 数据恢复

winhex与磁盘格式与 数据恢复

恢复成功。

winhex与磁盘格式与 数据恢复

 

相关文章: