开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 17048|回复: 96
打印 上一主题 下一主题
收起左侧

[易语言纯源码] 最稳的取机器码方式主板uuid-blosuid

[复制链接]
结帖率:100% (8/8)
跳转到指定楼层
楼主
发表于 2022-6-19 08:56:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   福建省福州市
分享源码
界面截图:
是否带模块: -
备注说明: -
本帖最后由 毛超 于 2022-6-19 08:58 编辑

前言:

机器码两种方式

1.取硬件信息
好处:支持检测重装系统变化
劣势:容易被通用过检测工具hook掉,因为取机器码通常为各类信息综合的id,如果hook更改其中一项,则整个机器码换掉,不准确

2.写入固定隐藏文件
好处:通常外面的hook替换工具无效,因为没有取硬件信息,且更换硬盘等设施能继续识别
劣势:重装系统后会消失

推荐:
硬件更换比较,显卡 > 内存条 > 硬盘 > CPU > 主板


综上所述最合适的方式,取简约的硬件信息,取最少的信息,实现外面的工具替换的信息根本不是你所用到的信息,并且兼容做到唯一值
所以,不要选经常更换的硬件,取主板的唯一id和型号是最小最稳健的办法没有之一



比如,可以轻松防住,以下热门的修改工具,还可以兼容区分用户唯一的能力












  
子程序名返回值类型公开备 注
取机器码bp文本型 
变量名类 型静态数组备 注
size整数型 
data字节集 
i整数型 
Length整数型 
uuid文本型 
between字节集 
time_low整数型 
n整数型 
withlow字节集 
' 备注:取主板部分参考论坛帖子,稍微修改
' wmic path Win32_ComputerSystemProduct get uuid /value 与另一种模式效果一致
' // no 取主板uuid
size = GetSystemFirmwareTable (1381190978, 0, data, 0)
data = 取空白字节集 (size)
如果真 (size < 1)
返回 (“”)
GetSystemFirmwareTable (1381190978, 0, data, size)
如果真 (size < 1)
返回 (“”)
i = 9  ' 前面8个字节忽略,储存其他信息
判断循环首 ()
' type 类型 1 系统信息
如果真 (data [i] = 1)
跳出循环 ()

Length = data [i + 1]
i = i + Length
' 调试输出 (编码_utf8到gb2312 (指针到文本 (buffer + i)))
' 长度信息后为字符串 找到字符串信息结束标记 就是下一个type 结构的起始位置
判断循环首 (data [i] ≠ 0 data [i + 1] ≠ 0)
i = i + 1
判断循环尾 ()
i = i + 2
判断循环尾 ()
i = i + 8
time_low = 取字节集数据 (data, #整数型, i)
uuid = 进制_十到十六 (time_low, )
' 中间部分需要交换下
between = 取字节集中间 (data, i, 4)
' 第二部分 = 字节集_交换 (第二部分)
withlow = between
计次循环首 (4 ÷ 2, n)
withlow [n × 2 - 1] = between [n × 2]
withlow [n × 2] = between [n × 2 - 1]
计次循环尾 ()
between = withlow
计次循环首 (4, n)  ' 中间四位
uuid = uuid + 进制_十到十六 (between [n], )  ' 直接用精益模块就行
计次循环尾 ()
i = i + 4
计次循环首 (8, )  ' 最后八位
uuid = uuid + 进制_十到十六 (data [i], )
i = i + 1
计次循环尾 ()
' // no 取主板型号
uuid = uuid + 取文本注册项 (4, “HARDWARE\DESCRIPTION\System\BIOS\BaseBoardProduct”, )
' // no 生成机器码
uuid = 校验_取md5_文本 (uuid, , , )
返回 (uuid)

取机器码的方法.zip (250.87 KB, 下载次数: 1073)



评分

参与人数 7好评 +6 精币 +9 收起 理由
XunTr + 1 不太推荐,假如我禁止你获取UUID机器码,那么获取的机器码都一样,网络验证自然破了,这也.
月神V + 1 支持开源~!感谢分享
oopsjeff + 1 + 2 YYDS~!
Suky + 1 + 3 感谢分享,很给力!~
易语言资源网 + 1 + 3 支持开源~!感谢分享
大道宽又长 + 1 感谢分享,很给力!~
bianyuan456 + 1 uuid= 系统_取DOS执行结果 (“wmic path Win32_ComputerSystemProduct get uuid /valu.

查看全部评分


本帖被以下淘专辑推荐:

结帖率:100% (12/12)

签到天数: 5 天

沙发
发表于 2022-6-19 10:01:42 | 只看该作者   山东省济宁市
感谢分享!
回复 支持 反对

使用道具 举报

结帖率:29% (10/34)

签到天数: 1 天

板凳
发表于 2022-6-19 10:46:24 | 只看该作者   重庆市重庆市
如果是网吧勒
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:100% (9/9)
地板
发表于 2022-6-19 10:50:56 | 只看该作者   河南省信阳市
防不住啊 亲,每次都不一样呢
回复 支持 反对

使用道具 举报

结帖率:89% (79/89)

签到天数: 5 天

地下
发表于 2022-6-19 12:34:47 | 只看该作者   四川省南充市
支持大佬
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 1 天

6
发表于 2022-6-19 12:37:11 | 只看该作者   山东省潍坊市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 4 天

7
发表于 2022-6-19 12:39:21 | 只看该作者   湖北省咸宁市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 1 天

8
发表于 2022-6-19 13:21:20 | 只看该作者   山东省潍坊市
uuid =  系统_取DOS执行结果 (“wmic path Win32_ComputerSystemProduct get uuid /value”, )
一句命令就完事儿了呀。。这不比上面的代码简单吗?

点评

单纯获取 UUID 信息,没有对数据进行进一步的处理和加密。如果 UUID 被泄露或伪造,可能会导致网络验证失效,安全性相对较低   湖南省长沙市  发表于 2025-5-5 16:58
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 1 天

9
发表于 2022-6-19 14:06:47 | 只看该作者   河南省南阳市
#在这里快速回复#感谢分享
回复 支持 反对

使用道具 举报

签到天数: 4 天

10
发表于 2022-6-19 15:34:40 | 只看该作者   重庆市重庆市
谢谢分享。
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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