• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    硬盘基地手机版
  • 关注官方公众号
    微信扫一扫关注
    硬盘基地公众号
  • [分享] XLS数据恢复之碎片重组

    [复制链接]
    datahdd 发表于 2014-12-22 23:54:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
           excel文档误删除或误操作导致后用数据恢复软件找回来发现文件打不开,为什么恢复的Excel文档打开是乱码或者不对呢?下面一例Excel文档碎片数据恢复文件头损坏导致损坏是其中的一种。

           此例要恢复的XLS大小为3.7M,去到winhex里面首先要确定文件的头对不对

    001.png

           在这里可以看到文件大小为3.7M,初步看文件头大小是对的

    002.png

           可以看到上图标记位置大小为3B000000=59,那么按照经验可能估算文件大小约为60KB*59=3540KB,这跟目录项的大小相近,那么这个头应该是对的。

           接下来根据文档MSAT(下图标记位置)去寻找文件的结尾

    003.png

           可以看到在最后一个MSAT为681D0000=7528,因为文件MSAT的标记为FDFFFFFF,他的相应的偏移量为7528 MOD 128=104*4=416,于是可以搜索偏移量为416的地方搜索标记FDFFFFFFFEFFFFFF(因为最后一个主MSAT过后肯定是一个流的标记,而流的标记为FEFFFFFF,于是我们可以增加这个标识来增大搜索的精准度),如下图所示:

    004.png

           一般搜索从文件头的位置开始向下搜索。搜索到符合条件再要判断他的扇区对应位置对不对

    005.png

    如上图,可以看到标记位置ID为7469,那么第一个MSAT的位置则为7471(隔了8个字节),这时再看文件头看是否第一个MSAT指向7471扇区。

    006.png

           如上图第一个MSAT位置为7470,所对应扇区为7471(因为是相对位置,所以要加1才是对应的扇区位置),因此找到的这个位置有可能是文档的尾巴,针对U盘做碎片重组,FAT32的文件系统里的XLS文档多数是由两个碎片组成,其中一个碎片一个是文件头,由一个簇组成,除文件头其它部分则为第二个碎片。因为此种结构的文档最后一个扇区是目录流,结构如下图:

    007.png

           可以看到最后一个扇区位置为146662,这个是该文档的最后一个扇区,文件的第一个碎片为文档头开始的8个扇区,第二个碎片的大小则为除去文件头后的大小,结束位置为146662扇区。而从文档头可以知道文档的总大小。

    008.png

           从上图可以看到文件的最后一个扇区为为7530,那么大小为7531(因为从0开始计扇区),则碎片分为两部分,分别是0-7,8-7530。于是第二个碎片的开始位置就可以算出来了,为146662-(7530-8)=139140,现在跳到这个扇区

    009.png

           可以看到139140扇区内容明显是XLS的头内容,那么把139140-146662的扇区段保存为另一个碎片,再跟第一段组合起来文件就可以正常打开了。

    精彩评论25

    laxiaota 发表于 2014-12-25 01:32:23 | 显示全部楼层
    备受启发,好帖子已经收藏,非常感谢楼主的高技术含量帖子!
    回复 支持 反对

    使用道具 举报

    puteng 发表于 2014-12-27 17:20:06 | 显示全部楼层
    写得太好。。但还没看懂。。新手。。。
    回复 支持 反对

    使用道具 举报

    jhg315806721 发表于 2015-1-17 16:48:46 | 显示全部楼层
    好贴  必顶
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关注0

    粉丝4

    帖子17

    发布主题
    阅读排行 更多
    广告位

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    .

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    .
    Email:9443120@qq.com
    移动电话:13011628855

    Powered by Intohard X1.0© 2001-2013 Inhdd Inc.( 鲁ICP备09029790号 )