手工重建复合文档(.doc;xls,ppt)文件头,修复文件全过程.docVIP

  • 12
  • 0
  • 约4.27千字
  • 约 17页
  • 2017-10-17 发布于湖北
  • 举报

手工重建复合文档(.doc;xls,ppt)文件头,修复文件全过程.doc

手工重建复合文档(.doc;xls,ppt)文件头,修复文件全过程

最近学习了复合文档的格式,在修复复合文档头方面做了不少实践,有了一些心得,经过梳理,做了个例子,把思路和过程介绍给大家,希望能解决你的不时之需! ?? 例子中用的文件如下图:名为“实验文档”,是个空文档,里面没有内容,看属性,10,752字节,刚好21扇区,复合文档的文件大小一定是512字节的整数倍,这跟复合文档的设计有关系。EXCEL,PPT等文件也属于复合文档,也符合这样的特点。 ? ? ? 后来我又想,可能有网友会对修复后的文件产生怀疑,没有内容的文件可能说明不了问题,所以我在文件中输入了很短的文本内容!如下图: ? ? ?? ??? 实验文档是一个正常的文件,另外我用Winhex把该文件的文件头(前面512字节)全部写成了0,最彻底的破坏,保存为“损坏的实验文档”,大家可以用现有的修复软件试一下,能不能修复,我用EasyRecovery Professional没有修复成功!其它的软件没有试过! ? ?? 下面,就请大家跟我一起看,如何把“损坏的实验文档”修复成功! ?? 先介绍用到的工具软件Winhex,功能很强大,可以用二进制的方式打开文件,并进行编辑,保存!该软件不仅可以打开文件,还可以打开硬盘,对硬盘数据进行编辑,搜索功能什分强大,用起来非常方便,同时支持脚本,提供API函数。软件界面如下图: ? ? ??? 用该软件打开“实验文档”和“损坏的实验文档”,可以对比一下前512字节,为了便于操作,我们需要将文件解释为硬盘,让软件以扇区的方式显示文件内容,看起来直观些! 两个文件的在软件里显示如下图: ? ? ? ? ??? 可见,“损坏的实验文档”前面的512字节全是0,文件头被全部破坏,文件无法用office打开! ? 复合文档文件头的定义: Offset ? Size ???? Contents????????????????????????????????????????????????? 0 ????????? 8 ????????? 复合文档文件标识:D0H CFH 11H E0H A1H B1H 1AH E1H 8 ????????? 16 ??????? 此文件的唯一标识(不重要, 可全部为0) 24 ??????? 2 ????????? 文件格式修订号 (一般为003EH) 26 ??????? 2 ????????? 文件格式版本号(一般为0003H) 28 ??????? 2 ????????? 字节顺序规则标识(见3.2)::FEH FFH = Little-Endian FFH FEH = Big-Endian 30 ??????? 2 ????????? 复合文档中sector的大小(ssz),以2的幂形式存储, sector实际大小 为s_size = 2ssz 字节(一般为9即512字节, 最小值为7即128字节) 32 ??????? 2 ????????? short-sector的大小(见5.1),以2的幂形式存储, short-sector实际大 ????????????? 小为s_s_size = 2sssz 字节(一般为6即64字节,最大为sector的大小) 34 ??????? 10 ??????? Not used 44 ??????? 4 ????????? 用于存放扇区配置表(SAT)的sector总数 48 ??????? 4 ????????? 用于存放目录流的第一个sector的SID (见6) 52 ??????? 4 ????????? Not used 56 ??????? 4 ????????? 标准流的最小大小(一般为4096 bytes), 小于此值的流即为短流。 60 ??????? 4 ????????? 用于存放短扇区配置表(SSAT)的第一个sector的SID (见5.2), 或为–2 (End Of Chain SID)如不存在。 64 ??????? 4 ????????? 用于存放短扇区配置表(SSAT)的sector总数 68 ??????? 4 ????????? 用于存放主扇区配置表(MSAT)的第一个sector的SID (见4.1), 或为–2 (End Of Chain SID) 若无附加的sectors。 72 ??????? 4 ????????? 用于存放主扇区配置表(MSAT)的sector总数 76 ??????? 436 ????? 存放主扇区配置表(MSAT)的第一部分,包含109个SID。 ?????????????????????????????????????????????????????????????????????????? ?????? ? 看起来有些复杂! 修复文件头的数据只需要计算

文档评论(0)

1亿VIP精品文档

相关文档