一次用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
随州
老大的方法不错 值得学习 好文章,学习!!! 复合文档。。。比较高深的东西学习下 高深,我看到现在都没有太看懂! 真是好资料啊 看不太懂啊 好深哦,看来要下点心思学才行 太深了,看不大明白。 既然有的软件能在瞬间破解密码 说明密码是在固定的一个位置 现在难点也是关键点就是找到这个位置清空 不知道对不