ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 56149|回复: 80

*******隐藏vba中的模块,起到保护vba代码的作用;以及用VBA来提取VBA Stream的演示

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-8 00:07 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:其他专业开发
本帖最后由 liucqa 于 2013-10-6 00:00 编辑

test - Module Hidden.rar (6.97 KB, 下载次数: 1891)

方法来自阿吉和南宫飘雪的帖子,俺给做个实践

*************************************************

楼下的诸位无需刻意寻求方法,这种隐藏破解也很容易。
破解它不在于你是不是高手,而在于你有没有仔细看论坛的帖子{:soso_e120:}

另外,提醒几点:
1、如果没有相应的工具,模块隐藏之后不好复原。因此会影响到后期维护。如果你想为自己写的代码搞隐藏,以目前大部分人的水平,我认为大可不必。
2、这种隐藏并不是什么高深知识,懂复合文档结构的人都可以很容易的破解出vba代码,甚至可以在不用Excel打开的情况直接读取单元格信息(国外有开源项目)。
3、对新手来说,你有研究如何隐藏模块的时间,不如去研究写出值得隐藏的vba代码。
4、这种技术只适合于一次性开发的vba开发者,对需要长期维护的项目不适合。



下图演示了使用VBA对Stream流进行解压缩的结果。
3.gif

我在网上找到了4种代码,两个用C写的(开源项目,俺看不懂),一个用VBA写的(原作者没写输出代码文本部分),一个用Python写的,效果都不错。
之前提到的提取vba代码的工具,测试发现有bug,对阿吉的Thisworkbook模块识别错误。

解压缩VBA Stream可以直接通过API函数完成(某些情况下可能需要对Stream做预处理),也可以参考上面的几个项目自己写代码(麻烦极了)

上图是我修改之后的VBA代码,达成的解压缩效果,供大家参考。

由于从复合文档中提取VBA代码是一种彻底颠覆VBA代码保护手段的技术,因此个人认为不适宜公开,有希望交流的,欢迎联系。



复合文档文件格式研究.rar (64.17 KB, 下载次数: 1551)
EN-OpenOffice 微软复合文档格式.rar (179.64 KB, 下载次数: 1300)


判断VBA病毒:VBA Code Dumper 提取VBA中的代码,演示版

http://club.excelhome.net/thread-1026277-1-1.html  DNA工具,可隐藏模块


评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-8 00:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-1-8 00:37 | 显示全部楼层
怎么隐藏的,从这个表中看不出来。谢谢!

TA的精华主题

TA的得分主题

发表于 2013-1-8 09:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-1-8 09:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
下载看看,学习一下,感谢

TA的精华主题

TA的得分主题

发表于 2013-1-8 15:11 | 显示全部楼层
本帖最后由 HUNGCHILIN 于 2013-1-8 15:12 编辑

liucqa  大師好.看了您的4點結論.我並不是很認同.或許等您更深入了解時會更有感觸與體會

点评

一楼更新C#提取VBA代码演示链接  发表于 2013-1-10 21:57
一楼更新提取工具效果演示  发表于 2013-1-10 01:12

TA的精华主题

TA的得分主题

发表于 2013-1-8 17:42 | 显示全部楼层
本帖最后由 joforn 于 2013-1-8 17:43 编辑

{:soso_e120:}我也来试试。
这个文档应该是在XP系统中生成的,生成此文档的Office版本是Office2007(32Bit)简体中文版
代码不贴了,看图
12324.JPG

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-8 17:49 | 显示全部楼层
本帖最后由 liucqa 于 2013-1-10 01:15 编辑
joforn 发表于 2013-1-8 17:42
我也来试试。
这个文档应该是在XP系统中生成的,生成此文档的Office版本是Office2007(32Bit ...

俺操作系统是win7,你要是没事的话,给写个工具吧

把压缩的模块文档还原成文本。



***********************************************

俺自力更生,写出来了(2013.1.9夜)


TA的精华主题

TA的得分主题

发表于 2013-1-8 17:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
牛啊,这么快就搞出来了。恭喜更上一层楼。

TA的精华主题

TA的得分主题

发表于 2013-1-8 17:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liucqa 发表于 2013-1-8 17:49
俺操作系统是win7,你要是没事的话,给写个工具吧

把压缩的模块文档还原成ascII

早就可以还原了啊,哈哈。

只是最近在分析最复杂的WorkBook流,这个流要比VBA的复杂的多,所以没空玩那个了。等我完全解开WorkBook后再说吧。反正我想到看代码的话用软件一打开就可以看到了。

点评

一楼更新C#提取VBA代码演示链接  发表于 2013-1-10 21:57
搞了个用VBA写的提取Stream的工具,看一楼演示。  发表于 2013-1-10 00:59
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 23:56 , Processed in 0.046042 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表