请问如何实现软件的单机加密功能?(300分)

  • 主题发起人 主题发起人 tempc
  • 开始时间 开始时间
T

tempc

Unregistered / Unconfirmed
GUEST, unregistred user!
即将发布一个软件,想具有单机加密功能,即提供的注册码只对某一台特定的机器有效,在
其它机器上无效,请问应该怎么做。我查了很多资料,主要有几种方法:
1. 利用硬盘逻辑序列号加密。缺点是用户可以修改逻辑序列号,因此不具有唯一性,而且
格式化后序列号就发生变动。
2. 利用硬盘的物理序列号。缺点是有些硬盘好像不提供物理序列号,而且在2000/NT下无
法直接获取硬盘的物理序列号,至今没有找到能在2000/NT下获取硬盘序列号的程序。
3. 利用CPU ID。缺点是很多CPU不提供ID,而且在2000/NT下也无法获取。
4. 利用BIOS ID。缺点是无法在2000/NT下获取。
综上,我始终没有找到一个好的实现方法,还请各位不吝赐教。
 
读主板序列号,加密,在注册表或其他隐秘的地方建个文件,储存注册码,每次启动
进行校验。我这有个原程序。
 
请问读主板序列号是如何实现的,能否把程序发给我,谢谢。 我的E-Mail: chcw@21cn.com
 
找一下微软的函数吧,向XP一样进行加密
据我所知只要是芯片就有序列号,只是不知如何读出
 
网卡号,全球唯一码
 
我有一个dll文件可以读硬盘的物理序列号支持NT/2000,可惜没有源码!
 
to 我爱PASCAL:
很多用户不装网卡的。

to liuxi:
这个DLL能否发到我的信箱?谢谢。 E-Mail: chcw@21cn.com
 
给我也发一个
crazycock@371.net
 
你所说的特定的机器是怎么个“特定”法
 
to f950436:
比如我开发了A软件,那么我提供的某一注册码只对安装在某台机器上的A软件有效,而对
安装在其它机器上的A软件都是无效的。这样就可以防止A软件被安装在多台计算机上。
 
to tempc,crazycock
邮件已发出,请查收!
 
to liuxi,给我也发一个
crazycock@371.net
 
to Linux:
也给我发一个好吗?谢了!
chengzhg@21cn.com
 
干什么要神仙一把抓 ?
由哪个号用那个标识不就可以了,都没有?
那她用的是算盘吧
 
去http://delphi.mychangshu.com下吧,我已上传了。
 
to liuxi:
你的程序能取SCSI硬盘的序列号吗?
 
据我所知,用编程器可以修改包括网卡卡号,BIOS序列号,以及硬盘序列号的,最好综合加密
 
你可以用Win32API函数取得一个COM对象的GUID(全球唯一标识符,据说根据比尔盖茨的银行帐号余额和网卡、时间等等生成[:D],保证唯一)!不推荐用硬盘序列号,
网上说有的硬盘没有序列号(是真是假不知道)!
 
to xdzhan:
问题是每次取得的GUID都不一样,用户使用我的程序第一次取得GUID后,返回给我,我
通过GUID计算出注册码,返还给用户,用户使用我的程序输入注册码,第二次取GUID时得到
的值和第一次不同了,除非我将第一次取得的值保存,但是这又会使Cracker有机可乘,所以
这种方法和随机数没多大区别。
 
读主板序列号不是唯一的
 

Similar threads

回复
0
查看
600
不得闲
回复
0
查看
806
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部