Crossin的编程教室
标题:
[小作品]利用hwid做到激活验证
[打印本页]
作者:
Danieldepython
时间:
2023-12-2 21:04
标题:
[小作品]利用hwid做到激活验证
本帖最后由 Danieldepython 于 2023-12-2 21:06 编辑
好久没来逛了,来发下最近做的小东西吧,不多说,我们进入正题:
有时做些软件时难免会做些付费激活的,但是有什么方法可以做到序列号标记呢
第一个想到的当然是文件,当然,这肯定不行,因为文件随时会丢失,pass
第二个就是注册表了,听起来不错,但一旦知道了就可以篡改,pass
第三个就是我们今天的主角了:
hwid
hwid是什么?这里可以看下度娘的结果
2023-12-2 20:43 上传
下载附件
(35.9 KB)
如图,可以看到hwid是一种类似根据硬件生成的识别代码
hwid并不会因为重装系统而改变,并且是唯一的,还不易篡改
(除非你换硬件了)
因此,我们是不是可以用python实现hwid验证呢?
答案是
当然可以
第一步就是获取机器的hwid了
打开cmd,输入
wmic csproduct get uuid
这时
可以看到我们的hwid了
2023-12-2 20:50 上传
下载附件
(11.08 KB)
我们可以使用
subprocess
的
check_output
方法实现执行cmd指令获取输出了
但问题来了,该如何过滤呢?
这个简单,可以用写字符串方法过滤,也就是下面的
我也不知道这是什么原理,当我没说“简单”二字
import subprocess
hwid = str(subprocess.check_output('wmic csproduct get uuid')).split('\\r\\n')[1].strip('\\r').strip()
print(hwid)
复制代码
这是就可以获取hwid了,然后我们可以搭建一个服务器存储下已激活的hwid判断就行,但我没钱买服务器,刚好gitee可以存文件又有读取和写入的api,就只能借下gitee了
完整代码:
import subprocess
import requests
import base64
hwid = str(subprocess.check_output('wmic csproduct get uuid')).split('\\r\\n')[1].strip('\\r').strip()
print("验证中...")
# 下面这段代码可以换成获取自己的服务器上的数据
# try:
# res = requests.get("https://gitee.com/api/v5/repos/***/***/contents/****?access_token=***").json()['content']
# hwids = base64.b64decode(res.encode('utf-8')).decode('utf-8')
# except:
# hwids = ''
if hwid in hwids:
print("通过")
else:
print("未通过")
input()
复制代码
作者:
Danieldepython
时间:
2023-12-2 21:09
详细关于gitee读取与写入数据api到时候有空详细做一期教程
(我也不知道要到啥时候)
作者:
crossin先生
时间:
2023-12-3 01:36
手动点赞
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/)
Powered by Discuz! X2.5