本帖最后由 liucqa 于 2017-9-17 12:13 编辑
VBA代码加密是个老问题,自从五年前我写的的VBA Dumper发布之后,在Office层面上做任何加密都已经失去了意义。所以,很多人开始转战VB封装或者升级到VSTO等。但是,对于广大的VBAer来说,重新学一门语言带来的麻烦要远远超过开发VBA程序所带来的收益。所以,是否能有一种办法在不改变VBA代码的情况下,将VBA代码脱离office进行加密呢?
考虑到office支持Com插件,那么是否能够通过外接插件完成VBA代码的动态生成,动态解密,实时运行,完毕删除这一系列保护代码的动作呢。这样,VBA代码不会与office文件存在一处,就可以有充分的手段对VBA明文代码进行加密了。
本人在去年开发了VBA智能排版插件Smart Indenter for VBE,那么我就利用这个插件,完成了上述功能。
1.gif (466.17 KB, 下载次数: 138)
下载附件
保存到相册
2017-9-13 20:27 上传
在演示里面,可以看到运行了几个过程和函数,运行的都是vba代码,由插件动态生成到Excel里面,然后通过Application.Run命令运行的。
这种加密方式的好处是不需要改动VBA代码,当然也就不需要学什么新的语言了。适合专注VBA应用开发的童鞋。
有几点说明:
1、 此功能只是VBA加密的一个思路,供大家参考。
2、 此种加密方式的优点在于将vba代码的加密层面从office转移到了.net。这给保护代码提供了很强的可行性。
提供附件,供大家测试。测试前请先安装Smart Indenter for VBE v2.4插件以提供最新的动态VBA加解密支持。
附件看八楼,问题看十楼。
如果有问题,欢迎QQ联系。
函数
评分
12
查看全部评分
York_LJ
smiletwo
makley
13631632978
jy03342543