- 积分
- 165
- 最后登录
- 2024-4-7
- 精华
- 0
- 阅读权限
- 20
- 主题
- 63
- UID
- 2944778
- 帖子
- 218
- PB币
- 241
- 威望
- 13
- 贡献
- 0
- 技术
- 13
- 活跃
- 978
- UID
- 2944778
- 帖子
- 218
- PB币
- 241
- 贡献
- 0
- 技术
- 13
- 活跃
- 978
|
本帖最后由 laomms 于 2022-6-24 08:48 编辑
数字权利JH在获取硬件指纹ID后,如何去生成证书?证书到底跟密钥有没有关系?
接下来的内容要看懂需要有一定的编程基础知识,看不懂就直接略过好了。
说一下数字证书的产生流程:
1、获取系统名称,版本,平台组成[backcolor=var(--color-canvas-subtle)]OSMajorVersion=%d;OSMinorVersion=%d;OSPlatformId=%d的格式,Windows11内核也是10。[backcolor=var(--color-canvas-subtle)]比如:- OSMajorVersion=10;OSMinorVersion=0;OSPlatformId=2;PP=0;
复制代码
2、将硬件数字指纹(base64加密后的数据)转成[backcolor=var(--color-canvas-subtle)]Hwid=%s格式并跟系统信息连接,比如:
- OSMajorVersion=10;OSMinorVersion=0;OSPlatformId=2;PP=0;Hwid=XwAAABMANAAAAAAAAQAAAAEAAQADAAAABQABAAEAvOkmUfA9/kZRIZIWjYhf8T+AZKAupKCnTuCw9QwAAgABAQACBQADAQAEAgAGAQAIBwAJAwAKAQAMBwAAAAAAAAA=;
复制代码
3、密钥信息: 如果目前系统证书模式是零售,取pfn(package family name)值,如果是批量就设置时间信息为GVLKExp=2038-01-19。组成Pfn=%s格式,并加在上面的字符串后面,比如:- OSMajorVersion=10;OSMinorVersion=0;OSPlatformId=2;PP=0;Hwid=XwAAABMANAAAAAAAAQAAAAEAAQADAAAABQABAAEAvOkmUfA9/kZRIZIWjYhf8T+AZKAupKCnTuCw9QwAAgABAQACBQADAQAEAgAGAQAIBwAJAwAKAQAMBwAAAAAAAAA=;Pfn=Microsoft.Windows.48.X19-98841_8wekyb3d8bbwe;
复制代码 或者批量的
- OSMajorVersion=10;OSMinorVersion=0;OSPlatformId=2;PP=0;Hwid=XwAAABMANAAAAAAAAQAAAAEAAQADAAAABQABAAEAvOkmUfA9/kZRIZIWjYhf8T+AZKAupKCnTuCw9QwAAgABAQACBQADAQAEAgAGAQAIBwAJAwAKAQAMBwAAAAAAAAA=;GVLKExp=2038-01-19T00:00:00Z;
复制代码
4、通过SLGetWindowsInformationDWORD(这些函数都是微软公开的函数,可以查得到)的Security-SPP-GenuineLocalStatus参数获取DownlevelGenuineState的值,加到上面的字符串后面。比如:- OSMajorVersion=10;OSMinorVersion=0;OSPlatformId=2;PP=0;Hwid=XwAAABMANAAAAAAAAQAAAAEAAQADAAAABQABAAEAvOkmUfA9/kZRIZIWjYhf8T+AZKAupKCnTuCw9QwAAgABAQACBQADAQAEAgAGAQAIBwAJAwAKAQAMBwAAAAAAAAA=;Pfn=Microsoft.Windows.48.X19-98841_8wekyb3d8bbwe;DownlevelGenuineState=1;
复制代码
5、将上面的字符串转成双字节(unicode),并用标准base64加密,就得到了SessionId。这个SessionId是固定的,也是数字权利中硬件指纹+系统的唯一判断。Windows系统很多地方都用到。比如windows已经获取数字权利的,就可以调用SLGetGenuineInformation函数(参数就是"SL_GET_GENUINE_AUTHZ:" + SessionId),直接就可以获取数字证书。- SL_GET_GENUINE_AUTHZ:TwBTAE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuAD0AMQAwADsATwBTAE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuAD0AMAA7AE8AUwBQAGwAYQB0AGYAbwByAG0ASQBkAD0AMgA7AFAAUAA9ADAAOwBIAHcAaQBkAD0AWAB3AEEAQQBBAEIATQBBAE4AQQBBAEEAQQBBAEEAQQBBAFEAQQBBAEEAQQBFAEEAQQBRAEEARABBAEEAQQBBAEIAUQBBAEIAQQBBAEUAQQB2AE8AawBtAFUAZgBBADkALwBrAFoAUgBJAFoASQBXAGoAWQBoAGYAOABUACsAQQBaAEsAQQB1AHAASwBDAG4AVAB1AEMAdwA5AFEAdwBBAEEAZwBBAEIAQQBRAEEAQwBCAFEAQQBEAEEAUQBBAEUAQQBnAEEARwBBAFEAQQBJAEIAdwBBAEoAQQB3AEEASwBBAFEAQQBNAEIAdwBBAEEAQQBBAEEAQQBBAEEAQQA9ADsAUABmAG4APQBNAGkAYwByAG8AcwBvAGYAdAAuAFcAaQBuAGQAbwB3AHMALgA0ADgALgBYADEAOQAtADkAOAA4ADQAMQBfADgAdwBlAGsAeQBiADMAZAA4AGIAYgB3AGUAOwBEAG8AdwBuAGwAZQB2AGUAbABHAGUAbgB1AGkAbgBlAFMAdABhAHQAZQA9ADEAOwAAAA==
复制代码
还有很多判断系统是否为正版都用到这个SessionId。也可以用来在未JH的机子中通过[backcolor=var(--color-canvas-subtle)]CreateGenuineTicketClient函数获取有效数字权利证书。
在每台机子在硬件无变化的情况下,这些参数都是固定的,那为什么通过gatherosstate生成的证书是每次变化的呢,是因为它在产生证书的过程中调用了[backcolor=var(--color-canvas-subtle)]GetSystemTime调用系统当前时间,固定掉时间也是有效的。
[backcolor=var(--color-canvas-subtle)] Win10/11 RTM版本会将数字权利信息链接到您的Microsoft帐户,以便重装系统恢复原来的JH信息,就算没有登录微软账号,也可以用疑难解答来恢复。但是其他能数字JH的系统,比如LTSC之类的,重装后只能通过密钥来检测,通过本机安装密钥产生证书,然后连接微软服务器验证。因为数字JH必须依赖于通用密钥(Generic Product Keys),就是该系列的所有版本都可以用这个密钥安装,比如win10专业版系列的VK7JG-NPHTM-C97JM-9MPGT-3V66T,LTSC之类的每个版本密钥都是不一样的,所以不能通用JH,只能独立JH,依赖于密钥。LTSC2021去除了零售证书,所以不能有数字JH的了,但是有批量证书,可以KMS38.
[backcolor=var(--color-canvas-subtle)]
[backcolor=var(--color-canvas-subtle)]
[backcolor=var(--color-canvas-subtle)]
最后放上根据这个原理写的数字证书生成器。
HwidGenerator.rar
(306.64 KB, 下载次数: 10)
更新:
HwidGenerator.rar
(369.25 KB, 下载次数: 26)
|
-
3
查看全部评分
-
|