ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: tonychris

[原创] VBA封装工具-网络版 ver1.00

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-12-29 11:26 来自手机 | 显示全部楼层
tonychris 发表于 2021-12-29 10:26
分2种方式,vba和vbs。前者是把代码释放到本地,再执行,执行后删除。当然了,也做了一定的保护措施,很 ...

前者是把代码释放到本地,再执行,执行后删除

这种 安全设置里 是不是要设为 信任vbproject,如下
方法1:

在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。

Sub AddCode1()

ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _

   "sub aTest()" & Chr(10) &_

   "msgbox""Hello""" & Chr(10) & _

   "end sub"

End Sub

第二种,在内存中直接执行,有点高级 ,vbscript对象执行vbs?

个人感觉还是关键业务用webservice实现比较安全。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-29 12:35 来自手机 | 显示全部楼层
zpy2 发表于 2021-12-29 11:26
前者是把代码释放到本地,再执行,执行后删除

这种 安全设置里 是不是要设为 信任vbproject,如下

是的,第一种要客户手动选择信任开发来源那个选项,vbs的不需要,封装效果好,但需要开发人员会封装才行

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-29 12:37 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zpy2 发表于 2021-12-29 11:26
前者是把代码释放到本地,再执行,执行后删除

这种 安全设置里 是不是要设为 信任vbproject,如下

如果是个人的需求的话,当然自己吧主要业务封装到服务器就行了,我这算是个通用的工具

TA的精华主题

TA的得分主题

发表于 2021-12-29 12:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 joforn 于 2021-12-29 12:55 编辑
tonychris 发表于 2021-12-29 10:26
分2种方式,vba和vbs。前者是把代码释放到本地,再执行,执行后删除。当然了,也做了一定的保护措施,很 ...

嗯,嗯,你说的可能都对,但我感觉你说的两种方式(VBA和VBS)都能被直接把代码弄出来。
一、只要是生成文件,那么文件本身就能被直接恢复,用完了就删除了又怎样?恢复一下又费不了多少时间,几分钟的事。不能或不会恢复又怎么样?我如果让你保存完的文件不能删除不掉呢?嘿嘿,设置一个权限的事,没多难吧?重复保存几次无意义的文件又能怎么样?我直接在真正的VBA 代码运行之前拦截,把整个文件另存出来,这你就没有办法绕过去了吧?

二、内存不是保险柜,事实是存内存中只是让自己感觉很安全,别人看不到。就像是你在透明玻璃房换衣服,你以为没人看得到,事实是窗外至少有几十几百上千的人正在围观窗户内的你。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-29 13:05 来自手机 | 显示全部楼层
joforn 发表于 2021-12-29 12:47
嗯,嗯,你说的可能都对,但我感觉你说的两种方式(VBA和VBS)都能被直接把代码弄出来。
一、只要是生成文 ...

你可以试试看下,不过有能力搞这个的,也不需要去封装了

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-29 13:06 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
joforn 发表于 2021-12-29 12:47
嗯,嗯,你说的可能都对,但我感觉你说的两种方式(VBA和VBS)都能被直接把代码弄出来。
一、只要是生成文 ...

我指的是代码删除,不是文件,你可以试试看,能不能把代码搞出来

TA的精华主题

TA的得分主题

发表于 2021-12-29 13:11 | 显示全部楼层
tonychris 发表于 2021-12-29 13:05
你可以试试看下,不过有能力搞这个的,也不需要去封装了


早在N年前就有人用过你这种方式做VBA加密,只不过他的是把代码加密存成TXT文件你的是代码存云,我的破解代码(就是一个只有大概一百行不到VBA的代码)直接发送给那位作者,让他自己测试,最后反正他就算拿着源码也没能告诉我准备用什么方式来防止我的破解。

TA的精华主题

TA的得分主题

发表于 2021-12-29 13:21 | 显示全部楼层
tonychris 发表于 2021-12-29 13:06
我指的是代码删除,不是文件,你可以试试看,能不能把代码搞出来

我先盲猜一下你的加密软件的原理:
你的代码要求"信任对VBA工程对象模型的访问",所以,你是在一拿到代码运行权后,先验证,验证通过后从远程下载对应的代码,然后为当前文件添加新的模块,将代码写入进去,然后运行真正的代码,代码运行完成后,再立即删除代码和自己添加的模块。
大概的过程是这样么?当然了,你无非是在代码运行过程前做点防止被人手动另存的可能性。比如,禁止保存,关闭VBA事件处理啥的。

TA的精华主题

TA的得分主题

发表于 2021-12-29 13:27 | 显示全部楼层
如果是我上面说的过程,那么你的保护就已经毫无意义了。只会稍稍会一些代码调试和网络封包的都明白你所保护的代码在哪了。

TA的精华主题

TA的得分主题

发表于 2021-12-29 13:31 | 显示全部楼层
至于VBS模式,那更好理解了,你自己想想你要运行VBS代码用的是哪个控件或是Dll?你用的工具本身就是你的命门所在。你难道就没想过一个人人在用的免费工具它怎么可能做为一个安全的加密工具来用?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-11 20:44 , Processed in 0.044483 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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