刚开始想用正规的注册机办法去完成,搜罗了半天,发现现在大部分的硬盘注册机 其实并不是读取硬盘的物理序列号来进行加密的,而是采用读取磁盘分区卷标号来作为加密的基值。先按照读取磁盘卷标号开发了注册机程序,在自己的三台电脑上测试都没问题,也就是说没出现过读取卷标号重复的情况。结果第二天发给客户测试,客户反应用了几台电脑的注册码全部一样,瞬间石化。
后来自己分析过,可能是由于现在的操作系统都是用的Ghost方式,如果采用相同的Ghost相同可能造成磁盘分区都一样的情况出现。算了后来还是不用这种方式了,苦于时间紧急没有时间去移植读取磁盘物理序号来加密的程序。百般无奈之下想到了一个很低级的办法,但是别人也不好破解,下面进入正题介绍如何用自己的方式写出比较可靠地注册机,暂且给这种方式取名叫做“BR”法。
第一部分,程序效果展示。
第一次运行会弹出注册界面,提供机器码,要求输入注册码注册。为了调试方便,增加了一个注册码提示功能。效果如下图:
1、输入注册码错误的情况:
2、输入正确的注册码的情况:
第二部分,实现原理:随机数产生+注册表
基本原理是:软件第一次运行的时候,将注册码变量写入系统注册表,赋值为0;同时系统产生一个N位的随机数,经过自己设计的某种算法(加密)得出一个机器码并且显示在注册机界面。如果输入的注册码正确的情况下,将正确的注册码写入注册表,覆盖初次运行赋值的0;那么下次再运行软件的时候,首先会去读取系统注册表的值如果不等于0,则说明已经被正确的注册码覆盖,就可以跳过注册这一步;相反如果输入的注册码错误,就不会去写注册表,那么注册表变量的值一直是0.
贴出程序供大家参考:
1、注册界面代码: