如果下位机,一定是最新的时候,那时间可以用下位机实现。
注册码的话,弄一个自定义的编码规则,自己根据 设备ID(硬盘序号,或者什么硬件编号都可以)生成。
举一个例子:如定义一个 N位的字符串,然后把取的设备ID,按一定的规律,附加进去,或换掉指定位的字符,最终生成一个新的字符串
然后拿这个字符串,MD5(32)运算(或Hash),甚至可以把运算中的常量,自己换掉。
最后取其中的若干位,起始位置和长度自己定,不要写变量,写成全局变量或根据ID的某种规律来生成。
注册码的比较,也是一个问题,防爆破,一个是不要直接比较注册码,一个是加壳。但加壳会带来一个问题,容易被误报毒。
不直接比较注册码,一种思路,按字节做运算,确保正确时运算结果为0,然后最后把结果加起来,这个运算过程不能放在判断是否成立注册的位置,离的越远越好。保存到一个变量中去。然后在某些运算过程中,使用这个变量叠加进去。
如,某个过程初始化,
X=5
写成 X=5+变量
如果注册码完成相同,这个变量的值为0,得到了结果正确。
如果修改跳转,通过的验证,但因注册码不对,那么这个运算得到了 变量不为0,得到了X值就偏差很多了。
如果X是画图的某个点的坐标,那么看到的结果就是这个点偏离正确的位置了。
以上都是自己的相法。没去实践过。