您的位置:首页 > 其它

U盘中的文件和文件夹显示为乱码的数据恢复

2010-01-24 16:54 549 查看

U盘中的文件和文件夹显示为乱码的数据恢复

华山剑客

现象:
一朋友的U盘(128M),原来装的基本上是图片,现在文件夹和文件名显示乱码:



打开文件夹时出现错误提示:



恢复过程:
一、做U盘的镜像(用WinHex做U盘的镜像)





[align=center] [/align]



[align=left] [/align]
[align=left] [/align]
二、数据收集及分析
1、到根目录看看





[align=left] [/align]
[align=center]第2016扇区[/align]
[align=left]分析:很明显它不是根目录内容,这说明DBR有问题。
[/align]
[align=left]2、看DBR参数[/align]



[align=center] [/align]



[align=center] [/align]
[align=left]分析:OEM的数据是乱码,但这影响不大。
3、到FAT1去,[/align]



[align=center] [/align]



[align=center]第32扇区[/align]
[align=left]分析:这是FAT32的分区,而且是FAT表正常
4、到FAT2[/align]



[align=center] [/align]



[align=center]第1024扇区
分析:和FAT1的一样,看起来也没有问题,目前这个U盘的数据分布情况如下:[/align]

[align=center]32[/align][align=center]992[/align][align=center]992[/align]DIR
[align=center]DBR[/align][align=center]FAT1[/align][align=center]FAT2[/align][align=center]DATA[/align]
     32        1024      2016
但再看与它(第1024扇区)相邻的两个扇区时发现了问题:



[align=center]第1023扇区结尾内容[/align]



[align=center]第1025扇区开始内容[/align]
分析:第1023扇区和第1025扇区的数据应该是一个FAT表中的一部分,感觉第1024扇区(FAT2的开始扇区)的数据好像插在一个FAT表中间,且FAT2只有一个扇区,这说明FAT表有问题,现在要找正确的FAT表,然后恢复。
5、搜索FAT表



[align=left]发现有三个FAT表:[/align]



[align=center]第32扇区[/align]



[align=center]第990扇区[/align]



[align=center]第1024扇区[/align]
分析:除了原来看到的两个FAT表外,在第990扇区发现一个FAT表,如果这是正确的FAT2(不可能是FAT1),那么DATA区的开始扇区为:32+(990-32)×2=1948扇区,现在到第1948扇区去:



第1948扇区
[align=left]它的上一扇区数据:[/align]



[align=center]第1947扇区[/align]
[align=left]分析:显然第1948扇区不是DATA开始的扇区(DATA数据在FAT2后面,而FAT2最后一个扇区的数据一般是00),现在要找DATA开始的扇区。[/align]
[align=left]
6、找根目录区(DIR)或DATA区开始的扇区
说明:FAT32分区中的根目录不是的固定的区域、固定大小(与FAT16分区不同),但一般情况下是从第二簇(即DATA区开始的位置)开始的,即:DATA区开始的数据是根目录数据。
寻找方法:从DATA区向上找,比如先到根目录(第2016扇区,其实在现在的U盘中不是根目录,是DATA区中间部分),然后向上搜索(方法见下图),搜索到后看下一个扇区是不是根目录或者DATA区开始的数据:
[/align]



[align=left] [/align]
[align=left]最后在第1924扇区找到,根据内容分析是根目录数据(如果是子目录,此扇区的第一个字节应该是2E),感觉根目录在DATA区的开始位置(后面还要论证!!)
[/align]



[align=center]第1923扇区[/align]
[align=left] [/align]



[align=center]第1924扇区[/align]
[align=left]7、分析根目录区及子目录数据
⑴主要分析没有删除的的子目录(即文件夹)数据,从上图中可以找到两个子目录:
[/align]



[align=left] [/align]



[align=left] [/align]
[align=left]子目录1:锐利    子目录数据起始的簇号:2CBH  即第715簇
子目录2:建利荣华  子目录数据起始的簇号:10002H 即第65538簇
⑵找子目录数据(不能直接到715簇或者65538簇去找,因为现在的DBR有问题),然后算出每簇扇区数及确认DATA开始的位置。 
 方法:搜索2E20202020202020[/align]



[align=center] [/align]



[align=center]第3136扇区[/align]



[align=center]第3198扇区[/align]



[align=center]第3350扇区[/align]



[align=center]第132996扇区[/align]
[align=left]分析这4个子目录数据(其实分析其中任意两个即可):[/align]

[align=center]该子目录所在的扇区数[/align][align=center]目录项中描述的这个扇区的所在的簇数[/align]
3136(无内容)[align=center]608[/align]
3198(有内容,但删除)[align=center]639[/align]
3350(有内容)[align=center]715[/align]
132996(有内容)[align=center]65538[/align]
[align=left]现在根据以上数据计算:
①原来分区中的每簇扇区数(重建DBR时会用到这个值)
(3198-3136)÷(639-608)=2
(3350-3198)÷(715-639)=2
(132996-3350)÷(65538-715)=2
结论:每簇扇区数是:2
②计算DATA开始的扇区数(假设是X)
3136=X+(608-2)×2      X=1924
3198=X+(639-2)×2      X=1924
3350=X+(715-2)×2      X=1924
132996=X+(65538-2)×2    X=1924
结论:DATA区的开始扇区是第1924扇区,而且根目录在DATA区开始的位置
⑶目前的情况[/align]

[align=center] [/align][align=center] [/align][align=center] [/align]DIR
[align=center]DBR[/align][align=center]FAT1[/align][align=center]FAT2[/align][align=center]DATA[/align]
[align=left]0                     1924[/align]
[align=left]8、判断正确的FAT表,并确定每FAT表扇区数
目前有两个不同的FAT表(不讨论第1024扇区那个备份的FAT表),先要判断哪个是正确的,方法如下:从前面分析的数据可知:第715簇是一个子目录的起始簇,那么在FAT表中,不会有一个簇指向它(因为如果有一个簇指向第715簇,那么第715簇就不可能是一个开始的簇),715换成16进制就是:2CB,在FAT表中应该表示为:CB020000,所以,如果在某一个FAT表中能找到CB020000,那么这个FAT表就不是原来正确的FAT表,在整个FAT表中(1924扇区前)搜索CB020000:
[/align]



[align=left] [/align]
[align=left]结果只有第37扇区中有这个数据[/align]



[align=center]第37扇区[/align]
这个扇区在从第32扇区开始的的FAT表中的数据,那么从990扇区开始的FAT表有可能是正确的,进一步判断:在从990开始的FAT表中找到715簇对应的位置:



[align=center]第995扇区[/align]
[align=left] [/align]
从图中可以看出,第715簇中的表项值(即它的一下簇)是716,第716簇中的表项值是FFFFFF0F,表示结束,即这个子目录的内容占用715和716两个簇。基本上确认了从990开始的扇区是原来正确的FAT表,而且应该是原来的FAT2,那么现在可以推测出原来的分区情况:

[align=center] [/align][align=center] [/align][align=center] [/align]DIR
[align=center]DBR[/align][align=center]FAT1[/align][align=center]FAT2[/align][align=center]DATA[/align]
[align=left]0            990      1924[/align]
[align=left]每FAT扇区数为:1924-990=934
FAT1开始的位置为:990-934=56(也是DBR中保留扇区的扇区数)
因此原来的U盘数据分布情况:[/align]

[align=center]56[/align][align=center]934[/align][align=center]934[/align]DIR
[align=center]DBR[/align][align=center]FAT1[/align][align=center]FAT2[/align][align=center]DATA[/align]
[align=left]0    56       990      1924[/align]
[align=left]三、手工修复
1、FAT2→FAT1
 因为第1024扇区的数据(从第4352簇―――4479簇)由于有原来的FAT2的数据而覆盖了,现在先要修复一下,但不知道原来是多少,现在只能用一个连续的没有碎片的,没有结束标志的数据联结上,能不能正确恢复,要看运气了,等恢复好后根据恢复情况再进一步微调。找一下从32开始的这个第4352簇―4479簇的数据,发现全部是连续的,符合条件:[/align]



把它复制到第1024扇区去:



[align=left] [/align]



[align=left] [/align]



[align=left] [/align]



这样第1024扇区的数据修复完毕,现在把从第990扇区到第1923扇区的FAT2内容复制到第56扇区:



[align=left] [/align]



[align=left] [/align]



[align=left] [/align]



[align=left] [/align]
[align=left]2、修复DBR参数(用模板修复简单些!!)[/align]



[align=left] [/align]
[align=left] [/align]



[align=center]修复前[/align]



[align=center]修复后
(只修改保留扇区数和每FAT扇区数据,因为其它的数据是正确的)[/align]



[align=center] [/align]



[align=center] [/align]



[align=center] [/align]
[align=center] [/align]



[align=center] [/align]
[align=left]现在把U安全删除后再插上,打开U盘,原来的内容都在,而且都能正常打开,朋友非常满意(因为涉及到隐私问题,所以我没有把恢复出来的照片扫图)。
[/align]



[align=center] [/align]
[align=right]2008-1-20  华山剑客写于湖北随州[/align]本文出自 “华山剑客数据恢复” 博客,请务必保留此出处http://tclrz100e.blog.51cto.com/1199440/269878
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: