U盘的文件如果被删除,或者U盘被格式化以后,很多时候用恢复软件恢复出来的office文件会打不开,其实只要文件存在我们就可以使用winhex通过手工分析底层数据结构进行恢复。
这个是什么原因呢?由于u盘的文件系统一般是fat32的,这种文件系统在存储文件的时如果在u盘进行操作的次数多了就很容易产生碎片。
一旦u盘上存储的文件产生碎片以后,由于这个文件的的底层数据存储并不是连续存储的,那么如果用普通的恢复软件去恢复的时候,往往恢复出来的文件都是不太正常的。
比如这个案例中,文件删除之后,用数据恢复软件恢打开有问题
0
1
2
3
现在打开恢复完的文件看一下结果是看不懂的乱码
4
在找不到专业软件时,可以进行手工分析恢复那么出现这种情况一般都是有碎片的文件,需要手工提取数据,这里就用一款十六进制编辑器winhex来手工提取,当然这个前提是要对各类文件系统有深入的了解。
5
这就是那个分区在十六进制显示的样子,先跳转到6291456号扇区
6
接下来把需要恢复的文件名转换成Unicode编码格式,因为NTFS分区格式是以Unicode编码格式来命名的,转换完之后点击菜单栏的Search--->Find Hex Values 会弹出如下图所示的窗口
7
把刚才转换的16进制数值写进去,向下搜索
8
光标停在了这个扇区,找到80属性,我用红色框框起来的就是我要恢复文件的簇流,就是根据这段簇流来恢复文件的,这个簇流不是连续的,有片段,这个就是平时所说的文件有碎片。
先算一下一个片段 起始位置:775124 簇大小:1
第二个片段 起始位置:16777253 簇大小:3 (第二个片段的起始位置是相对于第一个起始位置的)
第三个片段 起始位置:17552261 簇大小:41 (第三个片段的起始位置是相对于第二个起始位置的)
第四个片段 起始位置:17552345 簇大小:1 (第四个片段的起始位置是相对于第三个起始位置的)
一共有四个片段都计算完了,现在就需要提取每个片段的内容,先跳转到第一个片段的位置将内容复制到新文件,剩下的操作都一样
将每一个片段提取出来之后点击winhex菜单栏Tools--->File Tools--->Concatenate会弹出需要保存文件的路径及后缀
9
点击保存后会弹出一个窗口选择刚才提取出来的文件(注意,一定要按顺序附加)
10
四个碎片附加完成之后点击Done,附加完成,然后打开恢复的文件看一下
11
恢复完成,可以正常打开了
,