首页 手工重建复合文档

手工重建复合文档

举报
开通vip

手工重建复合文档手工重建复合文档(.doc;xls,ppt)文件头,修复文件全过程 (2010-11-02 10:51:25) 转载 标签: 复合文档 文件头 it     最近学习了复合文档的格式,在修复复合文档头方面做了不少实践,有了一些心得,经过梳理,做了个例子,把思路和过程介绍给大家,希望能解决你的不时之需!    例子中用的文件如下图:名为“实验文档”,是个空文档,里面没有内容,看属性,10,752字节,刚好21扇区,复合文档的文件大小一定是512字节的整数倍,这跟复合文档的设计有关系。EXCEL,PPT等...

手工重建复合文档
手工重建复合文档(.doc;xls,ppt)文件头,修复文件全过程 (2010-11-02 10:51:25) 转载 标签: 复合文档 文件头 it     最近学习了复合文档的格式,在修复复合文档头方面做了不少实践,有了一些心得,经过梳理,做了个例子,把思路和过程介绍给大家,希望能解决你的不时之需!    例子中用的文件如下图:名为“实验文档”,是个空文档,里面没有内容,看属性,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           字节顺序 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 标识(见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           标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 流的最小大小(一般为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。                                                                                     看起来有些复杂! 修复文件头的数据只需要计算并填写几项,一是扇区分配表(SAT)所占的扇区数, 二是目录起始扇区号,三是短流扇区分配表的起始扇区号及占用扇区数,四是主扇区分配表的起始扇区号及中用扇区数,五是扇区分配表的扇区号,其它内容所有的复合文档都是一样的,从正常文件中拷过来就行。    以上所说五项内容需要计算,现在介绍方法 一:确定目录起始扇区号 打开“损坏的实验文档”,将文件解释为硬盘,搜索字符串“ROOT”(unicode)如图:   搜索到结果,软件自动定位到字符串的位置,如图:     看状态栏:   该字符串位置是43扇区,第一个值确定了,目录起始扇区是43,第一项完成。由于复合文档在扇区编号时不包括文件头,0扇区从512字节处开始,所以目录起始扇区应该是42,下面就不再进行说明。 二:确定扇区分配表(SAT) 我们需要通过扇区的内容来确定某个扇区是不是扇区分配表(SAT) 该文件总共有47个扇区,文件头占一个扇区,剩下46扇区,所以,扇区分配表中的值应该大于0小于等于46,另外还有一些特殊的值,值FEFFFFFF表示扇区链结束,值FDFFFFFF表示该扇区被SAT占用,值FFFFFFFF表示该扇区为空闲。 看文件的1扇区:   数据如下:   该扇区是不是扇区分配表(SAT)呢? 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 里面的数据(4个字节一个项,因为扇区编号是用4个字节来存放的),第一项是ECA5C100,低位在前高位在后,换过来就是00C1A5EC,换成十进制为12690924,文件最大为46扇区,因此该扇区不可能是扇区分配表(SAT)。 看第2扇区,     第三项00007A03不满足条件,因此不是扇区分配表。 重复该过程,1-41扇区均不符合条件,分析到42扇区,看该扇区数据:     第一项0100000,第二项02000000,第三项03000000,等等,该扇区内的所有项的值要么小于46,要么是FEFFFFFF,要么是FDFFFFFF,要么是FFFFFFFF,符合扇区分配表的特点!记下该扇区号。 继续分析剩下的扇区,直到结束!在本例中,文件总共47扇区大小,而每个扇区512字节,4个字节放一个扇区编号,因此,一个扇区分配表可以存放128个扇区编号,所以说该文件只有一个扇区用来存放扇区分配表(SAT)。第二项完成。 第三:确定主扇区分配表(MSAT)的起始扇区号 主扇区分配表(MSAT)中存放的是扇区分配表(SAT)所在的扇区号,本例中,扇区分配表(SAT)只有一个,根据复合文档的格式定义,文件头中可以存放109项SAT值,也就是说,只要文件的扇区分配表不大于109个,就不需要主扇区分配表,严格的说是不需要额外的主扇区分配表,因为文件头就可以容纳下了,主扇区分配表(MSAT)是在SAT多于109项时,剩下的值用指定的扇区来记录!根据定义,无额外主扇区分配表(MSAT)时,主扇区分配表的起始扇区号为-2,十六进制表示为FEFFFFFF,它占用的扇区数为0,第三项完成 第四:确定短流扇区分配表的起始扇区号及占用的扇区数 短流扇区分配表(SSAT)是复合文档中的另一个概念,短流数据用短流扇区来存放,短流数据存放的位置通过短流扇区分配表来确定。一个文件有没有短流数据可以查看目录,如图:         根据复合文档定义,目录的第一表项0X74处的4个字节表示的是短流的起始扇区(十六进制2D000000值为45),0X48处的4个字节为短流的大小(十六进制800000值为128)。而短流扇区分配表(SSAT)一般位于短流起始扇区的前一个扇区,所以短流扇区分配表的起始扇区为45-1=44扇区,它只占用一个扇区。44扇区的内容如下图:   第四项完成。 第五:确定文件头中的扇区分配表编号 本例子只有一个扇区分配表(SAT),因此文件头中只用填写一个值。   到此,需要重建文件头的所有值基本都确定了,下面的工作就是改写文件头。 定位到0X2C处,2C-2F为扇区分配表(SAT)所占用的扇区数,本例占用1个扇区,转换成十六进制为(01000000,低位在前高位在后),操作完成后如下图:   定位到0X30处,4字节表示目录所在的扇区编号,经前面的计算,目录所在的扇区编号为42,换成十六进制为2A000000,把该值写到此处,操作完成后如下图:   定位到0X3C处,4字节表示短流扇区分配表(SSAT)的起始扇区号,本例短流扇区为44,十六进制值为2C000000,改写后,如下图:   定位到0X40,4字节表示短流扇区分配表占用的扇区数,本例占用1个扇区,应填写01000000,操作完成后如下图:   定位到0X44处,4字节表示MSAT起始扇区编号,本例没有MSAT,填写-2,十六进制值为FEFFFFFF,定位到0X48处,4字节表示MSAT占用的扇区数,本例为0,填写00000000 操作完成后如下图:     定位到0X4C处,此处后的每4个字节填写一项SAT扇区编号,本例只有一个SAT,位置为41,转换成十六进制为29000000,剩下的填写成FFFFFFFF,或者不填写也行!操作完成后如下图:   到此,所有艰苦的工作都完成了,但是文件头的其它数据还没有建立,不过这些数据都是固定的,比如,文件头的前8个字节所有复合文档都是一样的,不一样的只有前面所说的那些项,因此,这些数据可以从别的文件中拷过来!填写完所有数据后,如下图:     保存对文件的修改:   打开“损坏的实验文档”,能够正常打开,并且内容正确! Office中的WORD,EXCEL,PPT都是复合文档,都可以按这个方法操作!
本文档为【手工重建复合文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_220676
暂无简介~
格式:doc
大小:998KB
软件:Word
页数:18
分类:互联网
上传时间:2011-03-06
浏览量:29