|
|
发表于 2009-3-30 20:18:11
|
显示全部楼层
来自: 日本
我做过的比较复杂,vb6也能实现,不过读机器码,加密解密函数在vb6下实现比较麻烦,在.net下实现比较方便。
) c3 x- G! W( g5 @ ^基本结构如下) C, g7 H5 o# c2 t
1读机器码函数。这个机器码显示给用户% X" G$ p1 ]3 q, w( n
2加密机器码函数。把机器码加密成另一个字符串,也就是注册码。
, D0 h6 j( n; t7 D( H3读写注册信息函数,从注册表或文件中读出或写入注册码。
& d. j% X: X' J. k( ]
/ U3 A4 K. N v. d& G8 N3 i程序启动时首先检测注册表或文件中是否有注册信息,如果没有则显示给用户机器码。如果有则取得机器码并加密机器码,然后比较加密结果是否等于读入的注册码。 I: @5 z9 ]* m: y
用户输入注册码时也是取得机器码并加密机器码,然后比较加密结果是否等于用户输入的注册码,如果等于则把注册码存到注册表或文件中。
/ D3 g/ n" g3 F, W1 C6 I! a
# Y8 L/ R% a% x以上只是最简单注册形式,这样做还有很多缺点,比如注册码明文直接用于比较,容易被Crack,明文直接保存在注册表中也不安全。Crack高手有可能直接跳过注册模块,这就需要在注册码中混入程序代码片段或是一些常量值,使得Crack者即使跳过注册模块也不能正常运行程序。这里涉及到加密策略,可以参考http://msdn.microsoft.com/zh-cn/library/93bskf9z.aspx。不过这个应该不是初级课题,不是很容易理解,但用起来也不算太难。 |
评分
-
查看全部评分
|