| 
 
查看: 1138|回复: 14
 
 | 
如何制造一个会 expired 的软件
[复制链接]
 | 
 
 
 | 
 | 
 
有人有经验吗?弄一个有效日期的 (类似要register, buy 的软件) 
 
我想了很久,用了个很笨的方法,就是把 installation 日期写进 registry. 然后每次开机就读取 registry value, 在更今天的日期比较,如果超过了指定期限,就不让他们继续用 
 
可是这个方法太明显了,只要有人进到 registry 串改我的 installation 日期时间,基本上他们就可以无限的用我的软件了 
 
请问,各位有什么更好的方法吗? |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 28-12-2006 11:01 AM
|
显示全部楼层
 
 
 
首先呢,你的意圖是什麽? 
比如你要做一個software 給人試用,然後又怕人不給錢,也就是給人有trial period,那就寫在exe裏面阿。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 28-12-2006 03:13 PM
|
显示全部楼层
 
 
 
原帖由 biau_dart 于 28-12-2006 10:44 AM 发表 
有人有经验吗?弄一个有效日期的 (类似要register, buy 的软件) 
 
我想了很久,用了个很笨的方法,就是把 installation 日期写进 registry. 然后每次开机就读取 registry value, 在更今天的日期比较,如果超 ...   
首先呢,可以做个GUID作为你的registry entry,然后呢吧日期换成达文西密码不就行咯 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
 楼主 |
发表于 29-12-2006 09:01 AM
|
显示全部楼层
 
 
 
神仙,请问。。。。如何制作一个 GUID? 你的意思是说不要用我的 software 名字来做 registry entry,用 GUID? 
 
chuah, 怎么说写在exe里?我想知道的是 logic,就是如何在30天后不让他们继续用 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 29-12-2006 09:44 AM
|
显示全部楼层
 
 
 
我公司的是用date 来compare, 这也是 最麻烦的,因不时要重新设定新从日期。要不然你就写在一个dat file,然后用stream reader 来读。  |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
 楼主 |
发表于 29-12-2006 10:12 AM
|
显示全部楼层
 
 
 
我现在也是用date compare, 可是如果 user 跑去改了今天的 system date (例如,2006-12-25 到期,他把时间改去2006-12-20),这样我们就让他多用5天了 
 
还有,如果写在 data file, 用户也可以很容易的就开启那个 dat file 然后串该里面的 value.  
 
我觉得神仙的建议不错,把日期 encoding起来,然后用 GUID,这样用户就不知道应该去registry里串该哪一个文档了。嘻嘻~ 
 
嗯……如果user 把时间倒退,又该怎么办呢?因为我看过一个别人写的program,我把时间倒退,他的软件居然知道,给了我一个error msg 说什么我更改了 system date, 然后就把软件关了。 真厉害!! ^-^a |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
		
 | 
 | 
 
 
发表于 29-12-2006 12:16 PM
|
显示全部楼层
 
 
 
原帖由 biau_dart 于 29-12-2006 09:01 AM 发表 
神仙,请问。。。。如何制作一个 GUID? 你的意思是说不要用我的 software 名字来做 registry entry,用 GUID? 
 
chuah, 怎么说写在exe里?我想知道的是 logic,就是如何在30天后不让他们继续用   
这个可以你可以随便打一组号码,只要你的软件认识它不就行咯 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 29-12-2006 12:47 PM
|
显示全部楼层
 
 
 
我以前写过一个,很麻烦,为了不要让他们改SYSTEM TIME 后可以继续使用... 
因为我的APP要ACCESS 一个SERVER,所以我在那个APP第一次跑的时候就会UPDATE到SERVER 的DB里. 
如此一来所使用的DATE COMPARE将是SERVER 的,即使他们改LOCAL 的SYSTEM TIME也不会有用. |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 29-12-2006 03:28 PM
|
显示全部楼层
 
 
 
| 
或者可以试看把那个记录日期时间的config file藏起来.. |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 29-12-2006 03:41 PM
|
显示全部楼层
 
 
 
其實有很多方法啦,再與你怎樣運用而已。把事情弄得簡單點就不用那樣頭大了,這年頭,什麽都要簡單    |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
 楼主 |
发表于 30-12-2006 09:13 AM
|
显示全部楼层
 
 
 
okie~ 嘻嘻嘻,得到了很多的方法~ 哦,原来 c# 里面 内建了一个 generate GUID 的 method,就是 call System.GUID.newGUID() 
 
嘻嘻,这个方法不错~ 而且也把日期弄成 davince code 了,哈哈~ 
 
突然觉得,程序编写员就像一个魔术师,要做的就是如何“欺骗”我的软件使用者,不让他们看出我的“伎俩”,呵呵呵~~ 
 
读到一些文章,他们说可以拿一些 system32 的 file,来看它们的 last access time (因为每次电脑启动一定要用到那些dll,所以他们的last access 应该就是今天的日期),这样就算他们把日期改了,也没有用 ^^v |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 5-1-2007 08:53 PM
|
显示全部楼层
 
 
 
嗯……如果user 把时间倒退,又该怎么办呢?因为我看过一个别人写的program,我把时间倒退,他的软件居然知道,给了我一个error msg 说什么我更改了 system date, 然后就把软件关了。 真厉害!! ^-^a  
如此這般: 
1) 軟件安裝後,或者第一次執行時,將目前的電腦時間藏在某地方(比如registry或某文件)。 
2) 軟件執行時,將上述的安裝時間和目前的電腦時間作個比較,就知道時間有無被改過。 
 
读到一些文章,他们说可以拿一些 system32 的 file,来看它们的 last access time (因为每次电脑启动一定要用到那些dll,所以他们的last access 应该就是今天的日期),这样就算他们把日期改了,也没有用 ^^v  
有些人爲了讓電腦更快,會將last access time這個功能關閉。 
 
 
嘻嘻,这个方法不错~ 而且也把日期弄成 davince code 了,哈哈~  
把日期加密後,最好放在一個不顯眼,看起來又很無辜的地方,或者不顯眼,但看來很複雜的地方,譬如: 
HKCR\CLSID\{44858ABC-4803-3848-2138-4857BCDEF11} 
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\... 
文件的話,可以放在temp文件夾,和其它temporary file混在一起。 
 
你也可以雙劍合壁,將日期同時存在registry和文件。一個不見,還有另一個擋著。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 6-1-2007 10:38 AM
|
显示全部楼层
 
 
 
原帖由 ReyesChuah 于 28-12-2006 11:01 AM 发表 
首先呢,你的意圖是什麽? 
比如你要做一個software 給人試用,然後又怕人不給錢,也就是給人有trial period,那就寫在exe裏面阿。   
我做了测试,开动中的软件不能用low level file open mode写回exe里,file access denied。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 6-1-2007 01:11 PM
|
显示全部楼层
 
 
 
| 
就算可以寫在exe裏,安裝過就得回原本的exe了。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 6-1-2007 03:33 PM
|
显示全部楼层
 
 
 
如果顾客有得进入互联网, 每当软件开始运行, 连接到你的网络服务器检验. 
 
必须清楚告诉他们这个限制(in License Agreement and Download/Installation Instruction)。这是给试验版本,最终版本不会有这个限制。 
 
软件特点还可由服务器控制。如果不能连接服务器, 一些功能失效或完全不能使用。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 
 |   | 
            本周最热论坛帖子
 
 
 
 |