无法用VBA自动破解,那就用手动破解试试
1、使用UltraEdit32或其他二进位编辑工具
2、你理解二进位、十进位、十六进位的概念
3、Excel 中的_VBA_Project_CUR storage(我们可以理解为一个目录) 下的Project Stream(可以理解为一个
档 )是一个纯文字档案。如下例所示意,是一个包含了一个工作表(Worksheet)、一个模组(Moudle)的
Project stream。
其运算式为:
命令符=串
...
[小节]
命令符=串
每行间用 &h0d、&h0a (回车、换行)分隔。所以,这就为我们简单地破解提供了条件。
'********************************************
'*** 带有 VBA 的Excel,没有口令保护 ***
'********************************************
ID="{87EEB809-E9F0-11D6-95A2-008888998168}"
Document=ThisWorkbook/&H00000000
Document=Sheet1/&H00000000
Module=模组1
Name="VBAProject"
HelpContextID="0"
VersionCompatible32="393222000"
CMG="DBD91940F044F044F044F044"
DPB="B6B474AD94536E546E546E"
GC="91935354545454AB"
[Host Extender Info]
&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000
[Workspace]
ThisWorkbook=0, 0, 0, 0, C
Sheet1=0, 0, 0, 0, C
模组1=22, 22, 155, 343, Z
下例是同一个档,增加了口令保护的project stream。请注意看 ID、CMG、DPB以及GC串。
'********************************************
'*** 带有 VBA 的Excel,有口令保护 ***
'********************************************
ID="{00000000-0000-0000-0000-000000000000}"
Document=ThisWorkbook/&H00000000
Document=Sheet1/&H00000000
Module=模组1
HelpFile=""
Name="VBAProject"
HelpContextID="0"
VersionCompatible32="393222000"
CMG="B1B31D5B215B215F255F25"
DPB="6260CEBD62DA62DA9D2663DAB338442F98229B892DDBD831C3AC5373F78FF8D2FB2E1F1B3B"
GC="1614BA74DA9C8F9D8F9D8F"
[Host Extender Info]
&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000
[Workspace]
ThisWorkbook=0, 0, 0, 0, C
Sheet1=0, 0, 0, 0, C
模组1=22, 22, 155, 343, Z
当ID或DPB中的内容被更改时,就出现所谓的“工程不可视”状态。
而破解的方法也就很简单:
1、简单覆盖
将ID、CMG、DPB以及GC串(包括 命令符=串 ),覆盖为&h0d、&h0a(注意:请成对使用),如果出现单字
节空余,用&h20(空格)覆盖。
如:
00000000h: 49 44 3D 22 7B 38 37 45 45 42 38 30 39 2D 45 39 ; ID="{
87EEB809- E9
00000010h: 46 30 2D 31 31 44 36 2D 39 35 41 32 2D 30 30 38 ; F0-
11D6- 95A2- 008
00000020h: 38 38 38 39 39 38 31 36 38 7D 22 0D 0A 44 6F 63 ;
888998168}".. Doc
替换为:
00000000h: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ;
..................
00000010h: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A ;
...................
00000020h: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 20 0D 0A 44 6F 63 ;
.......... .. Doc
2、其他方法本文不再提供。
注意事项:
1、Excel 中的Stream 采用laola 档系统存放(请参考拙作<
stream 内容可能不连续存放。
例如: project stream 按小档块方式存放时,每 64 位元组(Laola Header偏移&h20定义)为一个
块,相临的块在Excel文件中不连续存放。在采用简单覆盖方式时请注意不要覆盖错位置。
首先禁用宏 ,把工作表复制到另一个没有保护的工作表,就是在工作表标签上移动或复制工作表,这样可以把对应工作表的宏弄出来,模块中的宏,需要用你所说的方法,你配合一下试试!我没试过