求助区有人问,绑定机器的程序是怎么做到的?我翻了翻论坛,大多数都是直接上源码,考虑到萌新可能看不明白,遂写了个非常简单易懂的代码
实现了“加密”“解密”“时间验证”“机器码验证”“错误信息返回”
每行代码都写了详细的注释,方便萌新理解
拒绝源码糊脸,授人以鱼不如授人以渔,从我做起

1.实现获取机器码以达到机器码验证
置入代码 ({ 184, 1, 0, 0, 0 }) 置入代码 ({ 49, 201 }) 置入代码 ({ 49, 210 }) 置入代码 ({ 15, 162 }) 置入代码 ({ 137, 85, 252 }) 置入代码 ({ 137, 69, 248 }) 返回 (取八位十六进制 (s1 ) + 取八位十六进制 (s2 )) s = 取十六进制文本 (a )s = 取重复文本 (8 - 取文本长度 (s ), “0”) + s 返回 (s )
这段代码来自于论坛,我随手找的一个取纯文本专属cpu序列号,例如999BFBFF99999F99,方便后续处理。大家可以替换成其他的更好的代码,灵活运用

2.生成限时注册码
|
问号_加密出注册码 | 文本型 | | |
机器码 | 文本型 | | | | 到期时间 | 日期时间型 | | | | 返回 (文本_加密 (机器码 + “丨” + 时间到文本 (到期时间, 1 ), “bilibili憨憨问号”))
这段代码我随手用了精易论坛的文本加密,大家可以替换成加密强度更高的命令
简单解释一下
-参数机器码:就是刚才取出的唯一值
-参数到期时间:顾名思义,就是到期时间
-“丨”:是我用来当做分隔符的字符,可以自行替换成其他的
-时间到文本(到期时间,1):将“到期时间”这个“日期时间型变量”转换为“文本型”
代码将【机器码+“丨”+到期时间】这段文本进行了加密,并将其返回,加密后的文本就是专属的注册码
这个命令放在作者专属的加密端用于生成注册码即可,不要开放给用户
使用方法:
加密 (“999BFBFF99999F99”, 到时间 (“2025.2.20”))
效果:
开放给机器码为“999BFBFF99999F99”的用户使用,到期时间为“2025.2.20”

3.解密and校验
有了注册码生成,自然也得校验,判断用户输入的注册码是否符合要求,是否到期,是否本机
|
解密and校验 | 逻辑型 | | |
注册码 | 文本型 | | | | 剩余时长 | 整数型 | | | | 错误信息 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 解密结果 | 文本型 | | | 数组 | 文本型 | | 2 | 剩余时间 | 双精度小数型 | | |
解密结果 = 文本_解密 (注册码, “bilibili憨憨问号”)数组 = 分割文本 (解密结果, “丨”, ) 如果真 (取数组成员数 (数组 ) < 2 )  错误信息 = “注册码有误” 返回 (假) 如果真 (数组 [1 ] ≠ 汇编_取CPU序列号 ())  错误信息 = “机器码不匹配” 返回 (假) 剩余时间 = 取时间间隔 (到时间 (数组 [2 ]), 取现行时间 (), 8 )调试输出 (剩余时间 ) 如果真 (剩余时间 < 0 )  错误信息 = “时长不足” 剩余时长 = 剩余时间 返回 (假)
剩余时长 = 剩余时间 返回 (真)
这段有点长,但关键代码段都已经写了注释,我这里就不单独拎出来讲了

界面部署:
编辑框_机器码.内容 = 汇编_取CPU序列号 () 变量名 | 类 型 | 静态 | 数组 | 备 注 | 剩余时长 | 整数型 | | | 错误信息 | 文本型 | | | 结果 | 逻辑型 | | |
如果真 (删首尾空 (编辑框_注册码.内容 ) = “”)‘ 如果编辑框没填写则返回这个  标签_提示.标题 = “注册码为空!” 返回 ()结果 = 解密and校验 (编辑框_注册码.内容, 剩余时长, 错误信息)‘ 开始进行校验 如果 (结果 )‘ 判断校验结果  标签_提示.标题 = “成功,剩余时长:” + 到文本 (到整数 (剩余时长 )) + “秒”‘ 如果为真  标签_提示.标题 = 错误信息‘ 如果为假 
这就是完整的思路了,附上一份例子源码,方便大家例子
萌新最忌讳无脑复制源码,一定要搞懂原理,希望大家早日发大财
如果有帮助,请点点帖子下方的“评分”,给我一个“好评+1”,谢谢大家!
本地机器码 限时校验.e
(963.64 KB, 下载次数: 130)
|