佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1067|回复: 14

如何制造一个会 expired 的软件

[复制链接]
发表于 28-12-2006 10:44 AM | 显示全部楼层 |阅读模式
有人有经验吗?弄一个有效日期的 (类似要register, buy 的软件)

我想了很久,用了个很笨的方法,就是把 installation 日期写进 registry. 然后每次开机就读取 registry value, 在更今天的日期比较,如果超过了指定期限,就不让他们继续用

可是这个方法太明显了,只要有人进到 registry 串改我的 installation 日期时间,基本上他们就可以无限的用我的软件了

请问,各位有什么更好的方法吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 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
回复

使用道具 举报

Follow Us
发表于 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也不会有用.
回复

使用道具 举报


ADVERTISEMENT

发表于 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)。这是给试验版本,最终版本不会有这个限制。

软件特点还可由服务器控制。如果不能连接服务器, 一些功能失效或完全不能使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-11-2024 09:05 PM , Processed in 6.705319 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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