sgqms 发表于 2008-10-11 00:38:51

一次用WINHEX破解复合文档密码的尝试

近日,在学习复合文档的过程中,突发奇想,能不能尝试用WINHEX来破解复合文档的密码呢?于是我开始了尝试:我先用word新建了两个一模一样的文档,一个设了密码,一个未设密码,分别保存后用winhex打开。
第一步:我选择了“工具—文件—比较”命令,比较两个文档的区别,可是结果一出来,我傻眼了,10634处差异,看得我头都大了,看来此路不通。(后来通过了解得知:文档加密后,不光是上了一道锁那么简单,内容也加密了。难怪差异这么大。)
第二步:我仔细分析了两个文档的文件头和目录结构,如下图:
1、存放扇区配置表(SAT)的扇区总数(2CH-2FH):01000000(1个)
2、存放目录流的第一个扇区的SID(30H-33H):22000000(34扇区)
3、存放短扇区配置表(SSAT)的第一个扇区的SID(3CH-3FH):24000000(36扇区)
4、存放短扇区配置表(SSAT)的扇区总数(40H-43H):01000000(1个)
5、存放主扇区配置表的第一个扇区的SID(如果为-2表示没有附加扇区)(44H-47H):FEFFFFFF
6、存放主扇区配置表的扇区总数(48H-4BH):00000000(0个)
7、存放主扇区配置表(MSAT)的第一部分(从4CH开始,视具体情况决定结束位置):21000000(就1个,在33扇区)到目录流去看看:


从目录流中分析到的数据如下表:
DID
NAME
类型
左DID
右DID
根DID
SID
大小
0
RootEntry
05
-1
-1
3
37
128
1
1Table
02
-1
5
-1
9
4096
2
WordDocument
02
1
-1
-1
0
4146
3
SummaryInforamtion
02
2
4
-1
17
4096
4
DocumentSu…tion
02
-1
-1
-1
25
4096
5
CompObj
02
-1
-1
-1
0
109
6

Empty






7

Empty











析SAT:



012…789…151617…232425…313233343536373839123…8-210…161718…242526…32333435-2-2-2-1-10—8扇区:WordDocument内容;9—16扇区:1Table内容;17—24扇区:SummaryInforamtion内容;25—32扇区:DocumentSu…tion内容。通过分析,我觉得密码很有可能藏在WordDocument或是1Table中,于是我用未设密码的文档内容来代替设有密码的文档内容,看看能否把设有密码的文档打开。
1、把有密码的WordDocument内容复制入无密码的文档中,保存,打开,提示如图:


2、把有密码的1Table内容复制入无密码的文档中,保存,打开,同样的提示。
3、把有密码的WordDocument+1Table内容复制入无密码的文档中,保存,打开,成功。
由此证明,密码在WordDocument+1Table内容中,范围缩小了很多,我感到一阵惊喜。但接下来该怎么办呢,我又感到非常困惑,特请高手赐教。
这次尝试虽然没有达到目的,但它促使我对复合文档的结构有了很深的认识,更使我深深的认识到:尝试实践永远是最好的学习方法。
电脑迷
2008-10-11
随州


雷宽恒 发表于 2008-10-11 10:27:14

老大的方法不错 值得学习

yjlbcjk 发表于 2008-10-11 10:41:55

好文章,学习!!!

hexuanyi 发表于 2008-10-11 12:34:10

复合文档。。。比较高深的东西学习下

lhw8033 发表于 2008-10-15 10:14:20

高深,我看到现在都没有太看懂!

hyphyp 发表于 2008-10-16 18:52:32

真是好资料啊

刘小鸭 发表于 2008-11-1 23:58:16

看不太懂啊

jkkmn 发表于 2008-11-2 00:19:34

好深哦,看来要下点心思学才行

edsagjcs 发表于 2008-11-13 13:10:48

太深了,看不大明白。

xzylhn 发表于 2008-11-14 08:20:53

既然有的软件能在瞬间破解密码 说明密码是在固定的一个位置 现在难点也是关键点就是找到这个位置清空 不知道对不
页: [1] 2 3 4 5 6 7 8
查看完整版本: 一次用WINHEX破解复合文档密码的尝试