查看: 1589|回复: 42
|
请问goatstudio,关于software trial version问题
[复制链接]
|
|
我帮公司做了一个软件,并也做了一个trial version软件,trial period是14 days。当user first time installation时,我是读取电脑的时间,然后store进.txt,之后每一天compare。但考虑到user能够更改电脑的时间,所以这方法行不同。想问一问你,有什么方法user cant change the computer time,或是你曾经有做过trial version software的经验,是否能和大家分享。。谢谢。。 |
|
|
|
|
|
|
|
发表于 4-8-2006 02:56 PM
|
显示全部楼层
当每一次用户用这软件的时候, 记录下来每一个时间, 这样就知道用户最后一次用的时间. 你可以把这些时间储存在 text 或 registry, 当然还要 encrypt 起来. |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:03 PM
|
显示全部楼层
那是不是代表说如果user最后一次login date < user电脑的时间,那就证明user更改了时间。。请问我这样推测对吗。。。请问要如何compare date。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:13 PM
|
显示全部楼层
我不是很明白.for example,user install the software on 3/8/2006,this date store in text file,user use this software again on 4/8/2006,then this date also store in a text file to record user last date to use the software.Let say on 31/8/2006,user use this software again,and sure that he/she cant use,because 14 trial period over already,but user can change their computer time to 15/8/2006.so my question is like this,the last date for the user use that software is 4/8/2006,then user change their computer date from 31/8/2006 to 15/8/2006,so they still can use the software,because the first day user install software is 3/8/2006...so i din understand what is ur meaning...can explain to me by provide some example.thanks |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:16 PM
|
显示全部楼层
其实我想过要做window services,当user install软件之后,一个timer也会auto install to computer directory,当用户一开电脑,那么电脑时间将自动record去timer。。可是这在我能力范围之外,不知道你有做过类似这样的window services。。。。。。 |
|
|
|
|
|
|
|
发表于 4-8-2006 03:19 PM
|
显示全部楼层
原帖由 fannwong 于 4-8-2006 03:16 PM 发表
其实我想过要做window services,当user install软件之后,一个timer也会auto install to computer directory,当用户一开电脑,那么电脑时间将自动record去timer。。可是这在我能力范围之外,不知道你有做过类似 ...
你这样做也许会有 anti virus 或类似 spybot 的东西探测到. |
|
|
|
|
|
|
|
发表于 4-8-2006 03:28 PM
|
显示全部楼层
原帖由 fannwong 于 4-8-2006 03:13 PM 发表
我不是很明白.for example,user install the software on 3/8/2006,this date store in text file,user use this software again on 4/8/2006,then this date also store in a text file to record user last dat ...
首先, 我得说, 会有漏洞存在.
根据以上的情况:
1. 安装于 3/8/2006, 时间记录在 3/8/2006 13:00
2. 运用于 4/8/2006, 时间记录在 4/8/2006 18:00
3. 运用于 31/8/2006, 时间超出, 被弹出来.
4. 修改时间去 15/8/2006, 于是时间记录在 15/8/2006 15:00 -> 破绽
5. 当用户再尝试修改的时候, 他只可以修改最后一次的时间之前的... -> 会越来越少
目前来说, 除了获取 motherboard 的时间外... 我暂时没办法解决... 至于要如何获取 motherboard 的时间... 我也没办法...
唯一可以提议的是, 也许除了时间, 也可以限制用户用的次数. |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:30 PM
|
显示全部楼层
原帖由 goatstudio 于 4-8-2006 02:56 PM 发表
当每一次用户用这软件的时候, 记录下来每一个时间, 这样就知道用户最后一次用的时间. 你可以把这些时间储存在 text 或 registry, 当然还要 encrypt 起来.
那你可以解释以上的论据,我还抓不到它的用途。。谢谢.. |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:33 PM
|
显示全部楼层
谢谢你的分享,我已经明白您的意思了。现在最保险的方法是做windows services和读去motherboard的时间。我会在想一想 |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:36 PM
|
显示全部楼层
谢谢你的分享,我已经明白您的意思了。现在最保险的方法是做windows services和读去motherboard的时间。我会在想一想 |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 03:43 PM
|
显示全部楼层
请问你有类似windows services的资料吗,读取电脑时间。。 |
|
|
|
|
|
|
|
发表于 4-8-2006 04:22 PM
|
显示全部楼层
你可以尝试这方法。
如果你的软件有储存资料的,用 RecordCount() <= 300。
-----
对于电脑时钟,我也是没办法,我遇过一个捣蛋的用户(比较会玩电脑)就很会钻这弱点。 |
|
|
|
|
|
|
|
楼主 |
发表于 4-8-2006 05:10 PM
|
显示全部楼层
差点忘了还有白日梦版主。。哈哈。。readcount()没有帮助,因为我没有store data...。。谢谢。。
[ 本帖最后由 fannwong 于 4-8-2006 05:24 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 4-8-2006 05:33 PM
|
显示全部楼层
七楼的方法很好。。。
把第一次安装的时间和最后一次运行的时间纪录起来。。。
假设,在run的时间小过install时候或last used的时间时,那么就表示user尝试修改时间。。。
其实,不一定需要用window service。。。
直接作program放在startup就可以了。。。或放在registry run key里。。。
这样的话,每次restart电脑,你的程序就会运行。。。window里的时间跟motherboard的时间是一样的。。。
最难的是,如何把run program的时间纪录在电脑。。。
如果,纪录在registry里,他们用system restore就可以把资料洗掉。。。
如果,记录在硬碟,他们format电脑就行了。。。
不过,我有听过一种程序,即使format电脑之后,(在你的trial period用完之后),它也不让你用。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 7-8-2006 12:30 PM
|
显示全部楼层
请问要怎样不让user manual delete registry key??。。
通常run-->regedit,那么他们可以delete registry key,有什么vb.net command可以阻止吗??
我想到的idea是,每当user start computer,date store in registry key(sure it's registry folder cant delete),然后当用户驱动software时,就拿install date和registry key的date比较。。那么就不用怕用户改日期。。 |
|
|
|
|
|
|
|
发表于 7-8-2006 12:48 PM
|
显示全部楼层
楼主你的问题是怕别人hack你写的软件。
我可以很坦白告诉你,你的做法是能够挡着普通级数的用户。同样的,Application 是在 OS Kernel 上运行。当使用者是很熟悉操作系统的人你就没办法挡。
怕被修改 registry key 就唯有放弃用它。
以前就曾利用修改日期这弱点来达到无限期使用某 shareware 直到它被取代为止,不过不鼓励这么做。 |
|
|
|
|
|
|
|
楼主 |
发表于 7-8-2006 05:25 PM
|
显示全部楼层
请问当insert registry key之后,那registry key 要怎样可以run at windows start up??我的registry key是store date,when user start their computer,the date will be automatically store in registry key,how should i perform this action..the following is my code
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", True)
regKey.SetValue("Date", System.DateTime.Now)
regKey.Close()
i try to install on pc,but when i restart my computer,the date in registry key not updated. |
|
|
|
|
|
|
|
发表于 7-8-2006 06:21 PM
|
显示全部楼层
小章鱼一般是记录两个时间:安装时间和最后一次执行时间。
fannwong CurrentVersion\Run 是指向可执行程式,
没有程式是不执行的。
你必须指向你的程式,然后用你的程式来更新。 |
|
|
|
|
|
|
|
发表于 7-8-2006 11:48 PM
|
显示全部楼层
原帖由 fannwong 于 7-8-2006 05:25 PM 发表
请问当insert registry key之后,那registry key 要怎样可以run at windows start up??我的registry key是store date,when user start their computer,the date will be automatically store in registry key,how ...
这样写已经错了.
另外这样做的话, 很容易被防毒软件误以为是 spyware, spybot 就是其中之一. |
|
|
|
|
|
|
|
发表于 7-8-2006 11:49 PM
|
显示全部楼层
原帖由 fannwong 于 7-8-2006 12:30 PM 发表
请问要怎样不让user manual delete registry key??。。
通常run-->regedit,那么他们可以delete registry key,有什么vb.net command可以阻止吗??
我想到的idea是,每当user start computer,date store in ...
你只要储存的时候 encrypt, 那么即使 delete 了也没有用... 因为软件肯定可以探测到出了问题. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|