[ 用户登陆 ] [ 免费注册 

公共分类
我的资料
网上资源
企业信息
工具软件
网址收藏
学习资料
股票信息
博客日记

其他分类

如何解除VBAProject 的口令保护
Admin . 2007/3/20 21:53:01
这篇文章是打哈欠针对Excel所写的一篇文件结构分析文章,但一样适用于Access。

(以下方法仅提供为学习使用,请不要滥用,破坏 VBA 编程人员的工作成果。请大家请所能购买正版)
注意:
本文所载全部、部分内容不得转载、商业使用,作者保留所有法律权利。
所描述方法不保证不对 office 文件、系统造成损害。作者不对使用者行为及行为后果承担法律责任。

假定:
1、你会使用UltraEdit32或其它二进制编辑工具
2、你理解二进制、十进制、十六进制的概念

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 文件系统存放(请参考拙作《Excel 二进制文件结构分析》),因而stream 内容可能不连续存放。
例如,project stream 按小文件块方式存放时,每 64 字节(Laola Header 偏移&h20 定义)为一个块,相临的块在Excel文件中
不连续存放。在采用简单覆盖方式时请注意不要覆盖错位置。

 网址: http://www.access-cn.com/Article/Class5/Class27/200508/1708.html 


最近后的内容
天伦律师事务所
微软公司高调宣布加入AJAX联盟
愚人节-愚人节的来历-愚人节风俗
微软正式宣布不再有 VFP 10.0
Access全教程
限制数据库的试用天数
找回忘了的密码的原理
Access安全性之QA详解
常见6个靠谱减肥法大PK
不当编写SQL语句导致系统不安全
最近前的内容
Access 2000数据库的密码忘了怎么办
建立Access数据库的安全门
处理加了密码的MDB数据库文件
中国安全信息网
MESSAGEBOX 函数
八大杀手 追袭白领健康
七大诀窍让销售工作变快乐
具备十五种让你成功的能力!
新营销策划的54把金钥匙
突破营销
最受欢迎
FoxPro梅子数据库编程技术论坛
左氧氟沙星
佛山公共汽车(巴士)线路
佛山社保公共查询系统
51地图:下载桌面地图2007
DOS下的NTFS启动盘 NTFSDOSPro5
国际时间表与北京时间对照表
windows 2003 64位版本语言包微软官方下载(包括简体中文)
江西高速公路规划图
建设银行佛山市分行各营业点名称及地址
佛山市车辆违章查询和处理方法
中国电话区号
Bird
索爱最新管理软件PCSuite1.10.71
成龙电影全集
做馒头的方法
Vfp Grid ManyHeader 2.0
trading net
讯雷在线
如何给宝宝取名----男孩起名方法
 ©2005 - 2008 粤ICP备12037054号-1 用户登陆  |  互联说明  |  联系我们  |  网站地图