1.注册码方式 现在绝大多数的软件都会采用注册码方式进行保护, 这种方式便于在因特网上进行交 41而且没有额外的成本.在软件没有注册前。 一般来说都会对软件的功能、时间、次数 9进行限制.软件作者构造的注册算法也小尽相同, 常见到的注册算法有以下几种方式.
(1)机器码+注册码 机器码一般是通过机器硬件设备的惟一编号, 利用软件构造算法来生成的, 比如利用 CPU.硬盘、网卡等设备来生成机器码。 由于硬件编号不重复.所以机器码在不同的电脑上也是不会重复的, 从而注册码也不会重复, 所以即使注册码被泄漏出去也不必担心.
(2)用户名斗注册码 这种方式则是利用物入的用户名构造算法来生成注册码.这种方式的缺点也是显而易见的, 就是不同的电脑可以用同一个用户名注册成功。
(3)组合方式+注册码 这种方式就是结合上面两种方式来构造算法, 参数增多, 使得算法可以相对复杂一些。 在构造注册算法时, 大多数的软件作者都会利用计算机中的数学运算和逻辑运算自己来编写, 而且大多数作者编写的又比较简单, 有些虽然比较复杂摘琐.但保护效果也不是特别得好。 这时软件作者可以借鉴国际上密码学算法应用到自己的算法当中.或者对这些密码学算法进行一定的改造使得解密者不能按照既有的算法直接进行推导。
比如:MD5. RSA. DES. CRC32. Basc64. Blowfish.等等.这些算法有些是不可逆的.有些虽然可逆但如果没有对算法的了解不一定能分析出来, 即使分析出来也不见得有能力将株法还反回去。 比如MD5算法就是不可逆算法.即从得到的结果是得不出原始的数据的, 现在常用来在网页后台数据库的密码字段进行应用.即使得到后台数据库, 也猜解不出原始密码是什么。
在构造算法的最后就要对注册码的真假进行判断比较了.这时软件作者最好不耍用变最直接进行比较, 而是再构造一个算法。 让机器码(用户名)和注册码作为变最参与计算利用构造的算法进行变换比较。 也就是不要让“注册码=F(用户名或机器码)”, 而是`F (注册码, 用户名或机器码”). 比如a为用户名或者机器码, b为假注册码, 在判断比较时, 不要使用“if f(a)=b"这样的变且比较:而是最好采用if f(a, b)=c这样的函数比较。 变t比较就是解密者所说的明码比较.在程序运行的某一个时期, 在内存中会出现正确的注册码, 这样的话.即使算法再复杂.也会很容易被做出内存注册机:算法比较也就是暗码比较, 不会在内存当中出现, 从而加大解密的难度。
对于注册码保护方式.采用爆破或者跟踪注册码都可以进行解密, 不过最好能够以踪出算法, 这样才能提高水平啊, 注册文件方式其实和注册码方式大同小异, 也是通过机器硬件信息或者用户信息来构造算法, 只不过一个写进文本框中, 一个写入到文件当中进行比较。 不过文件方式不受大小限制。
……