|
|
取硬盘序列号加CPU序列号拼机器码,发卡端用RC4加密生成key,注册端解密比对。
防快照重点:激活成功后把当前系统时间加密写进本地文件,每次启动检查,如果当前时间早于记录时间超过2天就锁死要求重激活,正常调整时间1天内放过。再加个虚拟机检测,检测到虚拟机直接不让运行。
精易模块命令:系统_取硬盘序列号、系统_取CPU序列号、文本_加密、文本_解密、程序_检测虚拟机,这些确定存在。给你贴个核心流程代码:
.局部变量 机器码, 文本型
.局部变量 本地记录, 文本型
.局部变量 配置内容, 文本型
.局部变量 过期时间, 日期时间型
.局部变量 激活时间, 日期时间型
机器码 = 系统_取硬盘序列号 () + 系统_取CPU序列号 ()
.如果真 (程序_检测虚拟机 () = 真)
信息框 (“禁止在虚拟机中运行”, 0, )
结束 ()
.如果真结束
配置内容 = 读配置项 (取运行目录 () + “\lic.dat”, “auth”, “key”, “”)
.如果真 (配置内容 = “”)
' 未激活,弹出激活窗口,输入key后用文本_解密校验
返回 ()
.如果真结束
配置内容 = 文本_解密 (配置内容, “自定义密码”)
' 解密后格式:机器码|过期时间戳|激活时时间戳
.如果真 (取文本左边 (配置内容, 取文本长度 (机器码)) ≠ 机器码)
信息框 (“机器码不匹配”, 0, )
返回 ()
.如果真结束
过期时间 = 到时间 (取文本中间 (配置内容, 分割位置1, 19))
激活时间 = 到时间 (取文本右边 (配置内容, 19))
.如果真 (取当前时间 () > 过期时间)
信息框 (“已过期”, 0, )
返回 ()
.如果真结束
.如果真 (取时间间隔 (取当前时间 (), 激活时间, 5) < -2) ' 5表示按天
信息框 (“检测到系统时间回溯,请重新激活”, 0, )
删除配置项那块
返回 ()
.如果真结束
' 运行主窗口
写配置项时把激活时时间也存进去。有人用快照还原后时间会倒退,差值大于2天就弹窗锁死。要是不想让用户删文件,可以写注册表隐藏路径,配合精易模块的注册表操作。这个方案够用了,真要防得买加密狗。 |
|