复合文档的修复Word文档下载推荐.docx
《复合文档的修复Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《复合文档的修复Word文档下载推荐.docx(10页珍藏版)》请在冰点文库上搜索。
没有修复成功!
其余的软件没有试过!
下边,就请大家跟我一同看,怎样把“破坏的实验文档”修复成功!
先介绍用到的工具软件Winhex,功能很强盛,能够用二进制的方式翻开文件,并进行编写,保留!
该软件不单能够翻开文件,还能够翻开硬盘,对硬盘数
据进行编写,搜寻功能什分强盛,用起来特别方便,同时支持脚本,供给API函数。
软件界面以下列图:
用该软件翻开“实验文档”和“破坏的实验文档”,能够对照一下前
512字节,为了便于操作,我们需要将文件解说为硬盘,让软件以扇区的方式显示文件内容,看起来直观些!
两个文件的在软件里显示以下列图:
可见,“破坏的实验文档”前方的512字节所有是0,文件头被所有破坏,文件没法用office翻开!
复合文档文件头的定义:
OffsetSizeContents
8
复合文档文件表记:
D0CF11
H
HH
E0HA1HB1H1AHE1H
16
此文件的独一表记(不重要,可全
部为0)
24
2
文件格式订正号(一般为003EH)
26
文件格式版本号(一般为0003)
28
字节次序规则表记(见3.2):
:
FEH
FF=Little-Endian
FFHFEH=Big-Endian
30
复合文档中sector的大小(ssz),
以2的幂形式储存,sector
实质大小
为s_size=2ssz字节(一般为9即512字节,最小值为7即128字节)
32
short-sector的大小(见5.1),以
2的幂形式储存,short-sector
实质大
小为s_s_size=2sssz字节(一般为6即64字节,
最大为sector
的大小)
34
10
Notused
4
用于寄存扇区配置表(SAT)的
sector总数
48
用于寄存目录流的第一个sector
的SID(见6)
52
56
标准流的最小大小(一般为4096
bytes),
小于此值的流即为短流。
60
用于寄存短扇区配置表(SSAT)的
第一个sector
的SID(见5.2),
或为–2(EndOfChainSID)如不存在。
64
68
用于寄存主扇区配置表(MSAT)的
的SID(见4.1),
或为–2(EndOfChainSID)若无附带的sectors。
72
sector
总数
76
436
寄存主扇区配置表(MSAT)的第一部分,
包含109个SID。
看起来有些复杂!
修复文件头的数据只需要计算并填写几项,一是扇划分派表(SAT)所占的扇区数,
二是目录开端扇区号,三是短流扇划分派表的开端扇区号及占用扇区数,四是主扇划分派表的开端扇区号及顶用扇区数,五是扇划分派表的扇区号,其余内容所有的复合文档都是同样的,从正常文件中拷过来就行。
以上所说五项内容需要计算,此刻介绍方法
一:
确立目录开端扇区号
翻开“破坏的实验文档”,将文件解说为硬盘,搜寻字符串“ROOT(52006F)”
(unicode)如图:
搜寻到结果,软件自动定位到字符串的地点,如图:
看状态栏:
该字符串地点是43扇区,第一个值确立了,目录开端扇区是43,第一项达成。
因为复合文档在扇区编号时不包含文件头,0扇区从512字节处开始,所以目录开端扇区应当是42,下边就不再进行说明。
二:
确立扇划分派表(SAT)
我们需要经过扇区的内容来确立某个扇区是否是扇划分派表(SAT)
该文件总合有47个扇区,文件头占一个扇区,剩下46扇区,所以,扇划分派表中的值应当大于0小于等于46,此外还有一些特别的值,值FEFFFFFF表示扇区链结束,值FDFFFFFF表示该扇区被SAT占用,值FFFFFFFF表示该扇区为安闲。
看文件的1扇区:
数据以下:
该扇区是否是扇划分派表(SAT)呢?
剖析里面的数据(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都是复合文档,都能够按这个方法操作!