开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6830|回复: 314
收起左侧

[易语言纯源码] 登录码绑定本机验证写法思路

  [复制链接]
结帖率:100% (23/23)
发表于 2025-2-19 16:49:42 | 显示全部楼层 |阅读模式   河南省新乡市
分享源码
界面截图: -
是否带模块: 调用了模块
备注说明: -
求助区有人问,绑定机器的程序是怎么做到的?我翻了翻论坛,大多数都是直接上源码,考虑到萌新可能看不明白,遂写了个非常简单易懂的代码
实现了“加密”“解密”“时间验证”“机器码验证”“错误信息返回”
每行代码都写了详细的注释,方便萌新理解
拒绝源码糊脸,授人以鱼不如授人以渔,从我做起


1.实现获取机器码以达到机器码验证

  
子程序名返回值类型公开备 注
汇编_取CPU序列号文本型 命令来自于论坛,可自行替换为其他验证身份的手段
变量名类 型静态数组备 注
s1整数型-4
s2整数型-8
置入代码 ({ 184, 1, 0, 0, 0 })  ' mov eax,01h
置入代码 ({ 49, 201 })  ' xor ecx,ecx
置入代码 ({ 49, 210 })  ' xor edx,edx
置入代码 ({ 15, 162 })  ' cpuid
置入代码 ({ 137, 85, 252 })  ' mov dword [ebp-4],edx
置入代码 ({ 137, 69, 248 })  ' mov dword [ebp-8],eax
返回 (取八位十六进制 (s1)取八位十六进制 (s2))
子程序名返回值类型公开备 注
取八位十六进制文本型 
参数名类 型参考可空数组备 注
a整数型
变量名类 型静态数组备 注
s文本型 
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校验逻辑型 返回是否可用,此命令用于客户Duan
参数名类 型参考可空数组备 注
注册码文本型
剩余时长整数型单位:秒,用变量接收
错误信息文本型用变量接受,如果结果是假,则此处会输出内容
变量名类 型静态数组备 注
解密结果文本型 
数组文本型2
剩余时间双精度小数型 
解密结果 = 文本_解密 (注册码, “bilibili憨憨问号”)
数组 = 分割文本 (解密结果, “丨”, )
如果真 (取数组成员数 (数组) < 2)  ' 如果数组数不对,说明注册码有误
错误信息 = “注册码有误”
返回 ()

如果真 (数组 [1]汇编_取CPU序列号 ())  ' 如果注册码中的机器码和本机机器码不同,说明不是本机注册的
错误信息 = “机器码不匹配”
返回 ()

剩余时间 = 取时间间隔 (到时间 (数组 [2]), 取现行时间 (), 8)
调试输出 (剩余时间)  ' /
如果真 (剩余时间 < 0)  ' 如果目标时间比当前时间要早,大减小会小于零,则判断到期
错误信息 = “时长不足”
剩余时长 = 剩余时间
返回 ()
' 经历所有判断如果成功过来了,说明验证通过
剩余时长 = 剩余时间
返回 ()


i支持库列表   支持库注释   
spec特殊功能支持库

这段有点长,但关键代码段都已经写了注释,我这里就不单独拎出来讲了


界面部署:

  
子程序名返回值类型公开备 注
_窗口1_创建完毕  
编辑框_机器码.内容 = 汇编_取CPU序列号 ()  ' 窗口创建时直接将机器码生成到编辑框里,让用户把机器码提供给你,你用加密端加密出注册码,在发给用户
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
剩余时长整数型 
错误信息文本型 
结果逻辑型 
如果真 (删首尾空 (编辑框_注册码.内容)“”)‘ 如果编辑框没填写则返回这个
标签_提示.标题 = “注册码为空!”
返回 ()
结果 = 解密and校验 (编辑框_注册码.内容, 剩余时长, 错误信息)‘ 开始进行校验
如果 (结果)‘ 判断校验结果
标签_提示.标题 = “成功,剩余时长:”到文本 (到整数 (剩余时长)) + “秒”‘ 如果为真
' 这里可以放置更多代码,例如载入窗口
标签_提示.标题 = 错误信息‘ 如果为假

这就是完整的思路了,附上一份例子源码,方便大家例子
萌新最忌讳无脑复制源码,一定要搞懂原理,希望大家早日发大财
如果有帮助,请点点帖子下方的“评分”,给我一个“好评+1”,谢谢大家!
本地机器码 限时校验.e (963.64 KB, 下载次数: 130)

点评

思路而已啦~就像文本加密也只是用了精易的   河南省新乡市  发表于 2025-2-21 09:13
.版本 2 剩余时间 = 取时间间隔 (到时间 (数组 [2]), 取现行时间 (), 8) 这里最好是改成取网络时间 不然人家改本机就轻松破J了   贵州省毕节市  发表于 2025-2-21 07:01
“授人以渔”好评,大力支持   上海市上海市  发表于 2025-2-19 16:59

评分

参与人数 28好评 +5 精币 +37 收起 理由
gaoxuyan521 + 1 + 2 支持开源~!感谢分享
cbl521ysys + 1 感谢分享,很给力!~
pcghr355 + 1 感谢分享,很给力!~
qq1056123185 + 1 + 3 开源精神必须支持~
z134 + 1 感谢分享,很给力!~
小呀小百百 + 2 感谢分享,很给力!~
zjbin1989 + 1 感谢分享,很给力!~
lzx5460 + 1 + 1 感谢发布原创作品,精易因你更精彩!
文西哥 + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
sundanming + 1 感谢分享,很给力!~
初阳123 + 1 感谢分享,很给力!~
jc520hll + 1 感谢分享,很给力!~
ma4747 + 1 感谢分享,很给力!~
t176 + 1 感谢分享,很给力!~
无尘666 + 1 感谢分享,很给力!~
3266167 + 1 感谢分享,很给力!~
v1331v + 1 + 2 感谢你的支持,精易有你更精彩
huangdi9569 + 1 感谢分享,很给力!~
pj小黑屋 + 1 感谢分享,很给力!~
liy456 + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
黯丄辶 + 1 感谢分享,很给力!~
暮光之城 + 1 感谢分享,很给力!~
笨来无一悟 + 1 + 5 功德无量
huangdi956 + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 13 天

发表于 2025-5-16 18:26:49 | 显示全部楼层   云南省红河哈尼族彝族自治州
666666666666
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2025-5-11 09:31:11 | 显示全部楼层   北京市北京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 27 天

发表于 2025-4-29 13:01:37 | 显示全部楼层   山东省青岛市
这帖子写得挺实在啊,萌新也能看懂,给大佬点赞!
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2025-4-29 11:26:55 高大上手机用户 | 显示全部楼层   广东省东莞市
支持一波6666666
回复 支持 反对

使用道具 举报

发表于 2025-4-29 06:37:31 | 显示全部楼层   广东省中山市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2025-4-26 11:50:50 | 显示全部楼层   北京市北京市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 27 天

发表于 2025-4-25 23:56:18 | 显示全部楼层   山东省青岛市
哈哈,这帖子挺贴心啊,给萌新铺路呢。代码简单易懂才好上手,不然一堆源码砸脸上,谁顶得住啊。楼主辛苦了,支持一波。
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2025-4-12 01:45:19 | 显示全部楼层   广东省汕头市
拿走学习,感谢
回复 支持 反对

使用道具 举报

发表于 2025-3-27 11:32:16 高大上手机用户 | 显示全部楼层   浙江省嘉兴市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:70% (7/10)

签到天数: 26 天

发表于 2025-3-27 08:35:48 | 显示全部楼层   福建省泉州市
学习学习,必须学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表