Office中国论坛/Access中国论坛

标题: [第2期]软件试用版功能实现 [打印本页]

作者: tmtony    时间: 2008-4-22 09:12
标题: [第2期]软件试用版功能实现
题目:软件试用版功能实现
级别:高
说明:我们经常要发布试用版软件给客户试用,如果方便用户试用同时又保障软件的利益呢。
          本期题目为制作软件试用版。
要求:
1。提供软件试用版功能的解决方法。
2。试用版只可试用30天,30天过后修改日期也无法再使用
3。也可提供试用次数,试用次数超过后也无法再使用
4。试用日期和试用次数两者之一超出均无法再使用
5。试用期过后输入正版系列号,即可转为正式版
         
其他要求请参阅读竞赛规则:
http://www.office-cn.net/vvb/thread-60637-1-1.html
参赛者在跟贴中只上传MDE文件,将最终源代码发到专用信箱:accsky2008@163.com
本期冠军得主具有拟定下期题目的权利
截止日期:2008.05.15

奖品: 微软无线光学鼠蓝鲨 原购买价499元 (实物与下面图片类似,但以实物为准)

[attach]29808[/attach]
作者: andymark    时间: 2008-4-22 09:32
是否同时支持天数限制和次数限制2种方式
作者: tmtony    时间: 2008-4-22 09:48
是的,如果哪个先到期,就以哪个为准
作者: aqzgx    时间: 2008-4-22 22:25
学习中,谢谢楼主
作者: liwen    时间: 2008-4-23 10:11
来凑个热闹
作者: liwen    时间: 2008-4-23 10:14
没注意题目,还少了正版序列号的设置。
作者: fswxs    时间: 2008-4-23 12:41
获奖作品能公布源码就好了[:13]
作者: andymark    时间: 2008-4-23 13:08
提示:  "系统文件掉失, 请与开发员联系"

不能正常运行呀
作者: 轻风    时间: 2008-4-23 13:43
最好还要有效地防止被破解。
作者: liwen    时间: 2008-4-23 14:23
原帖由 andymark 于 2008-4-23 13:08 发表
提示:  "系统文件掉失, 请与开发员联系"

不能正常运行呀


我测试了没天,没有发现问题,可能百密难免有一疏吧

来这个全面符合要求的再帮忙测试一下吧!这个我又反复测试多次,应该不会有问题了吧.
作者: liwen    时间: 2008-4-23 14:23
原帖由 andymark 于 2008-4-23 13:08 发表
提示:  "系统文件掉失, 请与开发员联系"

不能正常运行呀


我测试了没天,没有发现问题,可能百密难免有一疏吧

来这个全面符合要求的再帮忙测试一下吧!这个我又反复测试多次,应该不会有问题了吧.
作者: andymark    时间: 2008-4-23 14:28
现在可以了
作者: liaug    时间: 2008-4-23 14:46
顶一个
作者: kangking    时间: 2008-4-24 11:53
我做的一个,好容易破解的。破解后可要告诉我一下!

[ 本帖最后由 kangking 于 2008-4-24 15:48 编辑 ]
作者: liwen    时间: 2008-4-24 17:37
原帖由 kangking 于 2008-4-24 11:53 发表
我做的一个,好容易破解的。破解后可要告诉我一下!



破解倒不好破解,不过你这个注册没有针对每一台电脑,只是针对一个用户名。
[application]
bigingdate=2008-4-24
untildate=1958-9-18
lastusedate=2008-4-24
作者: kangking    时间: 2008-4-24 18:41
原帖由 liwen 于 2008-4-24 17:37 发表



破解倒不好破解,不过你这个注册没有针对每一台电脑,只是针对一个用户名。
[application]
bigingdate=2008-4-24
untildate=1958-9-18
lastusedate=2008-4-24


这不!出门就碰到高手了,以后怎么混呀!

因为只想实现这个意图,所以做得不全面,如果要针对每一台电脑,就复杂一些。
另外你做的我打不开,说我的版本太低了。你看这人就不一样,高手用的版本都高一些!:-)
作者: KerryHuang    时间: 2008-4-25 10:20
奖品不错,流口水...
作者: liwen    时间: 2008-4-25 11:56
原帖由 kangking 于 2008-4-24 18:41 发表


这不!出门就碰到高手了,以后怎么混呀!

因为只想实现这个意图,所以做得不全面,如果要针对每一台电脑,就复杂一些。
另外你做的我打不开,说我的版本太低了。你看这人就不一样,高手用的版本都高一些!:- ...


我与真的高手差远了,也就是跟你的水平差不多,只是现在一般都用ACCESS2003了,所以没有专门再去用2000。
作者: gdfsslec    时间: 2008-4-25 12:39
都是高手啊,继续[:12]
作者: baije    时间: 2008-4-26 15:32
我也把我原来我的改一下发上来:注册码计算因为为了卖U盘 ,是依盘符号不同,注册码不同,MD5加密算法!access2003格式!

[ 本帖最后由 baije 于 2008-4-26 15:34 编辑 ]
作者: tmtony    时间: 2008-4-26 15:53
作品不断哦, 还有半个月,大家赶快炫出自己的作品哦
作者: duanshc    时间: 2008-4-26 15:57
[:50]
作者: andymark    时间: 2008-4-26 16:21
如果系统进行还原操作, 限制不知是否有效
作者: tmtony    时间: 2008-4-26 16:22
如果还原操作,无法限制到了,只能依赖加密狗了
作者: liwen    时间: 2008-4-26 16:42
原帖由 tmtony 于 2008-4-26 16:22 发表
如果还原操作,无法限制到了,只能依赖加密狗了


其实系统还原了一样可以限制使用,并不一定需要加密狗。
作者: tmtony    时间: 2008-4-26 16:55
在其它分区上放置隐藏数据,或者在原程序中写入标志
作者: andymark    时间: 2008-4-26 22:19
限制系统还原是可以实现限制的, 暂时还不能对付全盘格式化的限制
要是能把标记写到硬盘磁道里就好了
作者: anycallcn    时间: 2008-4-27 22:02
如果能把前几名的程序源码公布是最好的
作者: baije    时间: 2008-4-28 08:49
其实所有的软件盗版都是无法处理的,我们不可能做的太过完美。
最主要是要简单,实用
作者: liwen    时间: 2008-4-28 13:15
原帖由 andymark 于 2008-4-26 22:19 发表
限制系统还原是可以实现限制的, 暂时还不能对付全盘格式化的限制
要是能把标记写到硬盘磁道里就好了


对付全盘格式化只能做在程序中了

[ 本帖最后由 liwen 于 2008-4-28 13:21 编辑 ]
作者: kangking    时间: 2008-4-28 15:08
原帖由 andymark 于 2008-4-26 22:19 发表
限制系统还原是可以实现限制的, 暂时还不能对付全盘格式化的限制
要是能把标记写到硬盘磁道里就好了



我想没有谁会让一个试用软件能够继续用而去格式硬盘,这样因小失大的事做起来得不偿失。
当然,应该发尽量有些难度。连windows这样的系统出来没有几天都破解了,还有OFFICE等等,我们还期望什么?

如果有人看上了你,你就准备上砧板吧![:34]
作者: fan0217    时间: 2008-4-29 19:53
原帖由 tmtony 于 2008-4-26 16:22 发表
如果还原操作,无法限制到了,只能依赖加密狗了


使用web验证的方法如何呢?缺点就是必须要联网。
作者: fan0217    时间: 2008-4-30 03:00
在各种软件试用版功能实现,一般采用限制时间或者使用次数: 1、 限制时间:一般采用在注册表中暗藏首次使用的时间,使用时比对当前时间和注册表中的时间,这样来达到限制使用时间的目的,但这种方法可以采用清除注册表中的信息(比如:重新按照操作系统和修改系统时间来达到继续使用的目的。 2、 限制次数:一般也是采用在注册表中记录使用的次数,每次启动登录时,自动修改注册表中的信息,这种方法也可以清除注册表中的信息来达到继续使用的目的 3、 前两者同时采用,试用日期和试用次数两者之一超出均无法再使用。 在此,我提出一个新的方法,虽然可以克服上述方法的缺点,但还是有其使用的局限性,不过不失为一种好方法:采用Web Service。这种方法需要有自己的网络空间来安装asp.net,但购买网络空间也很方便和便宜的(不需要购买数据库空间,可以采用Access来做后台数据库)。在验证时候需要连接的Internet网,这就是对于这种方法的最大限制。这里我只提供个限制时间的方法:我们首先创建个Web Service,这个Web Service提供了根据软件自动提供的用户代码(可以采用用户电脑的硬盘序列号或者CPU序列号)来进行验证是否在试用阶段,返回真假。根据返回的这个值就可以控制是否停止软件运行和终止用户的操作了。这种方法可以限制客户在指定的电脑上使用软件,防止非法复制。因为软件在进行验证时提交的是本机的相关信息,如果在服务器中没有相关的记录,那么就不能通过验证。当用户进行注册时,你就可以修改数据库中的相关信息,来达到解除限制的目的了。这种方法没有在用户的电脑中隐藏任何信息,所以就不存在通过清除相关信息来解除限制的可能。同时,这种方法的读取的时间时来自服务器,用户也不可能修改到服务器的时间,所以,通过修改系统时间来达到解除限制也是不可能的。我只提供了简单的功能,你可以对其进行完善,你可以对提取的用户代码进行加密,也可以添加使用次数的限制。我这里创建了个Web Service,地址:http://sylph-fan.cn/ValidateWebService.asmx?wsdl,这个Web Service有效期至2008年5月15日。需要测试的朋友请测试。

[ 本帖最后由 fan0217 于 2008-4-30 07:55 编辑 ]
作者: andymark    时间: 2008-4-30 08:25
fan0217 兄的方法应该是未来的趋势
作者: andymark    时间: 2008-4-30 08:46
对于防止更改时间, 简单一点的 可直接从时间服务器读取,  并不需要构建一个WEB 服务器
作者: fan0217    时间: 2008-4-30 09:33
原帖由 andymark 于 2008-4-30 08:46 发表
对于防止更改时间, 简单一点的 可直接从时间服务器读取,  并不需要构建一个WEB 服务器


对,但读取服务器时间只是个顺便稍上的功能。如果使用我上面提到的方法的话,必须构建一个web Services。
作者: goto2008    时间: 2008-4-30 10:22
学习。。。。。关注
作者: huangqinyong    时间: 2008-4-30 12:31
原帖由 fan0217 于 2008-4-30 03:00 发表
在各种软件试用版功能实现,一般采用限制时间或者使用次数: 1、 限制时间:一般采用在注册表中暗藏首次使用的时间,使用时比对当前时间和注册表中的时间,这样来达到限制使用时间的目的,但这种方法可以采用清除注册 ...

好思路。[:17]
作者: liaug    时间: 2008-4-30 15:43
学习一下
作者: liaug    时间: 2008-4-30 15:43
学习一下
作者: liaug    时间: 2008-4-30 15:43
[:34] 学习一下
作者: suve    时间: 2008-5-4 00:01
来过,看过,没有思考过,
作者: 红尘如烟    时间: 2008-5-5 17:59
我有个不太成熟的思路:
Access对象都可以自定义属性,我们就可以把第一次使用时间、使用次数、电脑唯一标识等存储在自定义属性中,这样就不依赖注册表了
,然后每次打开文件时读取硬盘号等硬件唯一序列号,来和存储的唯一序列号对比:如果相同就更新使用时间、使用次数等;如果不相同,则对第一次使用时间、使用次数等进行初始化,达到最大限制时间或次数就不能再用
这样的好处是不依赖注册表、不怕还原系统
不过需要注意的地方有:
要编译成mde文件(这个其实都不用说了)
不要设成表或查询的自定义属性
最好建立在最重要的对象中,或者在几个对象中建立相同的属性,或者在每个对象打开时都进行调用
作者: 红尘如烟    时间: 2008-5-5 18:10
晕,43楼的方法有个最严重的漏洞,就是如果在一台电脑上使用快到期了,再复制到另一台使用,快到期了再复制到其它电脑使用,这样就可以无限使用下去,针对这个情况做如下补充:
当对比时如果取得的标识和已有唯一标识不同时,建立新的标识属性,标识属性和电脑关联
如果标识属性个数超过一次数量,则永不再启用(意思就是防止拷贝,禁止在多台电脑上使用,这个就比较严重了,最好事先有提示)
作者: baije    时间: 2008-5-6 10:23
嗯,好思路。
找时间做个实例吧
作者: andymark    时间: 2008-5-6 11:07
思路不错
作者: laiguiyou    时间: 2008-5-8 13:42
原帖由 kangking 于 2008-4-28 15:08 发表




。连windows这样的系统出来没有几天都破解了,还有OFFICE等等,我们还期望什么?

如果有人 ...


同感
作者: fswxs    时间: 2008-5-8 13:53
我一直不明白为什么不用记录数来限制?请高手帮忙解答[:12]
作者: goto2008    时间: 2008-5-9 08:36
严重的关注这个贴..................
作者: rjacky    时间: 2008-5-9 09:10
大家的想法都不错,红尘的提议比较方便有效
作者: t小宝    时间: 2008-5-9 09:27
红尘的思路是把注册信息写入MDE文件本身,但这只针对一个文件,人家可以事先拷贝无数的副本,然后一个到期了又用另一个。。。
作者: andymark    时间: 2008-5-9 09:40
小宝说得有道理,  需要同时借助几种方法 相互检测对比
作者: liwen    时间: 2008-5-9 10:13
原帖由 fswxs 于 2008-5-8 13:53 发表
我一直不明白为什么不用记录数来限制?请高手帮忙解答[:12]


限制有多种方式,如程序使用限制、功能使用限制,你所说的限制记录数其实也是一种功能限制,也不存在为什么不采用记录数限制,至于采用何种方式限制程序的使用要看开发者限制的目的。
作者: fswxs    时间: 2008-5-9 13:39
原帖由 liwen 于 2008-5-9 10:13 发表


限制有多种方式,如程序使用限制、功能使用限制,你所说的限制记录数其实也是一种功能限制,也不存在为什么不采用记录数限制,至于采用何种方式限制程序的使用要看开发者限制的目的。

我的意思不是功能限制,而是相当于使用限制。没有注册则记录数到一定时(比如20条)则不能使用,相当于试用版。限制试用次数或天数都有很多办法对付,而限制试用记录数要简单的多,把注册信息放在程序内,无论格式化还是复制使用都不行,这样说对不?
作者: t小宝    时间: 2008-5-9 15:41
我了认为象数据库这种东西主要就是存数据,所以限制记录数的方式比较好,方便易行。
作者: lxh1968    时间: 2008-5-17 00:35
好好学习,天天向上
作者: guoanxiang    时间: 2008-5-18 16:08
[:30] [:30] [:30]
作者: guoanxiang    时间: 2008-5-18 16:08
好多好的东西呀!全收了先!
作者: 烁谋娥    时间: 2010-3-23 22:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 烁谋娥    时间: 2010-3-23 22:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风中漫步    时间: 2015-6-2 14:34
有最新的吗?{:soso_e112:}给借鉴下
作者: xlb004    时间: 2016-3-5 18:19
ddddddddddddddddd




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3