Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何保护access源代码

浪乘风  发表于:2012-07-06 09:40:38  
复制

大家好.我编写一个动态代码的access客户端,服务器使用sqlserver,程序编写分为两部分,客户端和服务器端,代码从客户端编写完毕,传输到数据库存储,运行时从数据库调取出来,但是客户端运行access时,可以使用getobject,获取到access.application,进而可以导出数据库的对象,导致代码泄露,有没有办法解决?客户端,同时具有运行和设计两个功能,根据快捷方式不同,启动不同界面。登录时检测用户的权限,判断是否可以使用设计界面。设计界面,用户可以创建\修改窗体\代码,每个窗体的代码动态从数据库调取。运行时使用选项卡窗口。

 

Top
在水一方 发表于:2012-07-06 10:02:36
客户端使用mde格式,禁用shift键,vba编辑器加设密码。

浪乘风 发表于:2012-07-06 10:39:06
客户端是不同的人使用,不同的人有不同的功能,需要根据权限列表导入对应的窗体或者报表,窗体设计完成传输到服务器,就可以分发使用.客户端使用mde或者accde无法导入窗体呀也没有办法实现功能设计的要求呀.

学习者 发表于:2012-07-06 14:37:39
权限+禁用shift+设置工程密码

浪乘风 发表于:2012-07-06 16:43:10
权限+禁用shift+设置工程密码,这个不行呀.accdb不支持权限;设置工程密码,则不能动态导入代码;禁用shift,由于客户端的两种模式程序是一样的,只不过运行模式启动的是access runtime,如果禁用shift,则设计模式没法使用呀,设计模式就是完整版的access,设计人员可以在里面开发代码,并发布。

在水一方 发表于:2012-07-06 19:42:03
你这种需求本身就不安全,后门一堆。

王度兰亭 发表于:2012-07-07 18:54:14
把运行和设计界面分离开吧。设计用一个accdb实现,运行用accde。对库中的代码进行加密,调取出来必须解密才能使用,解密的代码写在accde中。其它shift,密码之类的酌情处理。

浪乘风 发表于:2012-07-09 09:48:00
你这种需求本身就不安全,后门一堆。不知道,在水一方,用过sap么,sap就是这种模式的,用户可以编写程序,也可以运行程序,都是一个界面.

浪乘风 发表于:2012-07-09 09:53:25
王度兰亭 [对库中的代码进行加密,调取出来必须解密才能使用,解密的代码写在accde中.] 代码加密可以呀,就是accdb本身加密后文件大了点,其他可以使用winzip压缩加密。但是解密的代码如何写在accde中?写进accde后,如何把所有的窗体界面集中在一个accde中,因为我要做一个桌面最小化的功能,不可能一个窗体启动一个access。

浪乘风 发表于:2012-07-09 09:54:27
王度兰亭 [对库中的代码进行加密,调取出来必须解密才能使用,解密的代码写在accde中.] 代码加密可以呀,就是accdb本身加密后文件大了点,其他可以使用winzip压缩加密。但是解密的代码如何写在accde中?写进accde后,如何把所有的窗体界面集中在一个accde中,因为我要做一个桌面最小化的功能,不可能一个窗体启动一个access。其实,这所有的功能我都已经设计好了,就是客户端运行access时,可以使用getobject,获取到access.application,进而可以导出数据库的对象,导致代码泄露,有没有办法解决?

浪乘风 发表于:2012-07-09 09:54:33
王度兰亭 [对库中的代码进行加密,调取出来必须解密才能使用,解密的代码写在accde中.] 代码加密可以呀,就是accdb本身加密后文件大了点,其他可以使用winzip压缩加密。但是解密的代码如何写在accde中?写进accde后,如何把所有的窗体界面集中在一个accde中,因为我要做一个桌面最小化的功能,不可能一个窗体启动一个access。其实,这所有的功能我都已经设计好了,就是客户端运行access时,可以使用getobject,获取到access.application,进而可以导出数据库的对象,导致代码泄露,有没有办法解决?

陈诺 发表于:2012-07-18 16:23:02

 

Access 2007程序要保存成accde格式出现如下提示, 要怎么解决?谢谢。

access 写程序时,默认的HasModule property是Yes,难道要一个个设置为No, 有没有其他方法?

 



王度兰亭 发表于:2012-07-18 23:19:41

楼上兄弟,先编译一下(VBE界面下,选“调试”--》“编译”)编译没有问题之后,再转换为accde。

 

浪乘风兄,如果你的getobject是在accde中进行的,用户就看不到你的代码了。

 

 



陈诺 发表于:2012-07-20 09:06:29

谢谢 王度兰亭 解决了一直困扰我转换accdb 至 accde的问题。。。



麥田 发表于:2012-07-20 21:45:13

用access开发平台开发

 

access开发平台及教程

http://www.umvps.com/products.asp?Id=142



浪乘风 发表于:2012-08-06 14:37:32
客户端运行access时,可以使用getobject,获取到access.application,进而可以导出数据库的对象,导致代码泄露,有没有办法解决?
是指客户端已经运行了该access的运行版,不过某些用户另外启动vba或vb,使用getobject(客户端路径)就可以取得application,这样就可以导出代码。

心态哥 发表于:2012-08-10 11:35:06
虽看不懂,但还是顶一下。

心态哥 发表于:2012-08-22 11:27:18
路过。。。

dbaseIIIer 发表于:2012-08-23 07:45:16

有没有玩过 Access开发平台?

 

你就用里面的方式,也是所有想屏蔽代码,又可以让用户自行建立自己的新object的方法,

 

这是所有开发平台或开发插件使用的方法。

 

 

1. 数据就随便了连接了。

2. 把 程式分位两个 mdb 或 两个 accdb, 一个是 可看代码的,一个编译成为 mde/accde就不能查看对象和代码的

3. 可看代码的  作为程式的 入口( 会简单点,其实反过来都可以的)

4. 在 可看代码的程式里 每次打开程式 去 添加引用到 mde/accde的 “参考”(application.Reference.add),失败就报错!

 

因为参考的 mde/accde 是另外一个数据库,有可能因为安装,或者网络里共用等的情况,不是经常看到的。所以才需要第4项。

这个你就自己设计 检测策略了,不同的应用情况是需要你

 

a) 只需要 安装时候 添加参考

b) 程式启动时候 检查参考的完整性

c) 每次调用前去检查 (网络使用情况)

 

accessoft 的开发平台就每次启动时候检查是否在相同路径的。

 

mde/accde 的安全性还是蛮高的,现在懂得破解的人只是寥寥无几的,不过愿意付费的话,是100%可行的,看着你自己软件的价值吧。

 

一般还要加入   代码混淆技术、动态生成代码、动态更改代码、部分编译为dll再加壳 等技术的,真的是看你软件的价值吧!

 



总记录:18篇  页次:1/1 9 1 :