Excel VBA 编程 -- 保护知识产权
- 2026-11-10 03:56:49
Excel VBA 编程 -- 保护知识产权我们已经讨论过 VBA 的模块与类模块,并且建议在类模块中用类来表达概念,概念经过实例化后,变成代码可以操纵的实体(对象)。 日积月累,这些表达概念的类就会越来越多,为了便于在其他的 VBAProject 中使用这些类,最方便的途径便是把这些类放入 Excel 的代码库中。关于如何创建 Excel 代码库以及如何在其他项目中共享代码库中的代码,请参阅文末的相关阅读《Excel 代码库管理》一文,这里不再赘述。 关于代码库的管理,一个重要问题便是如何保护自己的知识产权,防止非法使用或修改。一个常用的办法是给 Excel 代码库增加密码,这样其他人如果不知道密码将无法打开查看甚至修改我们的代码。 但事实证明,Excel 的密码管理很弱,密码极易被破解。下面举例说明。 对于我们的代码库 PiVBALib.xlam,我们已经进行了密码保护。当在 Excel 中打开这个文件时,VBE 中是看不到具体内容的,必须给出密码才能解锁显示,如图: 
当输入正确的密码后,就可以随意查看和修改代码了,如图: 
但如果我不知道密码,却又想查看并修改代码,怎么办呢? 下面我们介绍破解 Excel 密码保护的一种方法:破坏文件法。 第一步,下载安装 HxD(for Windows)二进制文件编辑工具。 第二步,将文件名 PiVBALib.xlam 改成 PiVBALib.zip。 第三步,使用解压工具将其中的 vbaProject.bin 文件提取出来。 第四步,使用 HxD 打开 vbaProject.bin,搜索字符串 DPB=,如图: 
将 DPB 改成 DPX(或随便什么其他名字,只要保持三个字符,从而维持文件的大小不变即可),保存,退出 HxD。 第五步,将修改过的 vbaProject.bin 再存回 PiVBALib.zip 文件,并且将 .zip 扩展名再改回原来的 .xlam。 第六步,用 Excel 打开 PiVBALib.xlam。此时,由于 .xlam 文件已被破坏,Excel 会显示如下提示框: 
点击“Yes”继续加载。完成加载后,点击“开发工具” => “Visual Basic”,会显示如下提示框: 
点击“OK”继续,如果还有提示框显示,继续点击“OK”,直到 VBE 打开,如图: 
此时,可以看到 PiVBALib.xlam 中的模块和类模块,但仍然看不到具体代码。点击“工具”菜单,在下拉菜单中点击“PiVBALibProject 属性...”,如图: 
在弹出的“PiVBALibProject - 工程属性”对话框中,点击“保护”选项卡,如图: 
此时,清除掉“查看时锁定工程”的检查框,则清除了 PiVBALib.xlam 的保护密码。或者,在下面重新设定“查看工程属性的密码”。完毕后,点击“OK”关闭对话框。保存并退出 Excel。 至此,PiVBALib.xlam 的密码或者被清除了,或者已经被重新设定。此时,PiVBALib.xlam 文件对你已经完全敞开。 以上的手工操作步骤并不麻烦,况且还有很多密码自动破解工具,由此说明 Excel 的密码保护机制非常脆弱。 既然密码保护不保险,那如何保护我们的知识产权呢?且听下回分解。 相关阅读 Excel 代码库管理 Excel VBA 编程 -- 模块与类模块 Excel VBA 编程 -- 对一种错误情况的处理 Excel VBA 编程 -- 调用 DLL Excel VBA 编程 -- 再谈调用 DLL








本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。