Bootstrap

u盘第一扇区 分区表_U盘文档恢复出来打不开,通过案例看数据底层世界,手工分析恢复...

U盘的文件如果被删除,或者U盘被格式化以后,很多时候用恢复软件恢复出来的office文件会打不开,其实只要文件存在我们就可以使用WINHEX通过手工分析底层数据结构进行恢复。

2747ad3b2d481e41f292b408840b0ed5.png

这个是什么原因呢?由于u盘的文件系统一般是fat32的,这种文件系统在存储文件的时如果在u盘进行操作的次数多了就很容易产生碎片。

一旦u盘上存储的文件产生碎片以后,由于这个文件的的底层数据存储并不是连续存储的,那么如果用普通的恢复软件去恢复的时候,往往恢复出来的文件都是不太正常的。

比如这个案例中,文件删除之后,用数据恢复软件恢打开有问题

f0ff4eebc2a39077b2c61468a946f47a.png

0

929e8715488735b6f0f73f149719cae4.png

1

29fe82f3095ac3177bcfe9e357076a0c.png

2

a709763047d3743af35cba67debdc28e.png

3

现在打开恢复完的文件看一下结果是看不懂的乱码

e64df439bc8ca8f30f0ec41509a5ea07.png

4

在找不到专业软件时,可以进行手工分析恢复

那么出现这种情况一般都是有碎片的文件,需要手工提取数据,这里就用一款十六进制编辑器winhex来手工提取,当然这个前提是要对各类文件系统有深入的了解。

2f721d5a68cbd311d72e0f1af27cab0e.png

5

这就是那个分区在十六进制显示的样子,先跳转到6291456号扇区

a1b5c2c38c5aae0f96b2cd761caf9948.png

6

接下来把需要恢复的文件名转换成Unicode编码格式,因为NTFS分区格式是以Unicode编码格式来命名的,转换完之后点击菜单栏的Search--->Find Hex Values 会弹出如下图所示的窗口

c1e9515371cf3a22bf8bf01e17300856.png

7

把刚才转换的16进制数值写进去,向下搜索

1b461dd408920138bbb8b2bf3c50f2fe.png

8

光标停在了这个扇区,找到80属性,我用红色框框起来的就是我要恢复文件的簇流,就是根据这段簇流来恢复文件的,这个簇流不是连续的,有片段,这个就是平时所说的文件有碎片。

先算一下一个片段 起始位置:775124 簇大小:1

第二个片段 起始位置:16777253 簇大小:3 (第二个片段的起始位置是相对于第一个起始位置的)

第三个片段 起始位置:17552261 簇大小:41 (第三个片段的起始位置是相对于第二个起始位置的)

第四个片段 起始位置:17552345 簇大小:1 (第四个片段的起始位置是相对于第三个起始位置的)

一共有四个片段都计算完了,现在就需要提取每个片段的内容,先跳转到第一个片段的位置将内容复制到新文件,剩下的操作都一样

将每一个片段提取出来之后点击winhex菜单栏Tools--->File Tools--->Concatenate会弹出需要保存文件的路径及后缀

2f57b2630c6aafee49353d9e17d0b3d2.png

9

点击保存后会弹出一个窗口选择刚才提取出来的文件(注意,一定要按顺序附加)

fab2a22845595b0a8ca121f3f564fdd2.png

10

四个碎片附加完成之后点击Done,附加完成,然后打开恢复的文件看一下

2792b2a9da84c46a40566d0a82cf96dc.png

11

恢复完成,可以正常打开了

;