纯干货Windows95序列号验证机制详析
今天电脑炸了,cmd,注册表编辑器,控制台mmc等的数字签名不见了,搞了半天都没搞定。只好随便刷一下视频,“一不小心”就看到了win95序列号验证机制原理(包括零售版和OEM版)这就立刻分享给喜欢在虚拟机装远古系统却不知道序列号的同学们。首先支持YouTube的原作者
1.视频链接:https://www.youtube.com/watch?v=cwyH59nACzQ
2.源代码:https://gist.github.com/nezza/a25bee13f25a1733a4c7a1d3d1cf5882
3.oem密钥检查代码:https://gist.github.com/nezza/a25bee13f25a1733a4c7a1d3d1cf5882
B站热心翻译up
1.视频链接:https://b23.tv/oGxNt0
B站热心二次代码整理up
1.oem详解文章:https://b23.tv/EzLAKU
2.二次整理代码链接:https://github.com/BenderBolg/Practise-Programs/blob/main/Win95_OEMKey_Check.c
如果不想点开一个个链接查看的话,可以看我这个省流助手总结哈哈
一、win95零售版序列号激活原理:
格式:XXX-XXXXXXX
1、前三位数字除333、444、555、666、777、888、999外字母数字任填。
2、破折号位不被验证机制读取。
3、后7位数字拆分位7个单独的数字,7个单独数字相加能被7整除即可通过。
例子:000-0000025
前三位数字符号不是333、444、555、666、777、888、999要求,则通过(不管是数字还是字母);后7位数字拆分为0+0+0+0+0+2+5=7,算式的结果7能被7整除,没有余数,通过。
验证成功。
二、win95oem零售版序列号激活原理
格式:XXXXX-OEM-XXXXXXX-XXXXX
1、前三位数总和在1-366间即可
2、第四至第五位数总和在95-02间即可
3、第九位到第十五位按零售版后7位方法检测方法(详见上面零售版检测),但必须以0开头。
4、第十六至第二十位只要是个数字即可。
例子:13290-OEM-0000025-12345
三、代码原理:
据YouTube的原作者反逆向研究发现该参数存在于setupx.dll中的一个PIDVALDATE函数中,使用switch语句。首先先说明密钥(字符串),密钥长度(整数),产品类型(字符串)。
检测产品类型为零售或oem。
若零售,则将序列号及其长度作为参数;将序列号前三个字节拷贝进字符串(即前三序列号);中止;检测排除项;检测后7位数是否被7整除;
若oem,因二次编写作者禁止装载,请看上面B站热心二次代码整理up中的“oem详解文章”链接
说到这里,顺便补充一下,貌似是Windows98后增加了网络验证,安装后要联网检测你的密钥或使用电话激活
当初windows3.11 for workgroup的时候,SN乱输入或重复输入都没事。 win95古董版都出来了,怀念啊 经典之也找出来分享 回帖有奖也不是很多人看,伤心 回复也是一种美德 wodedai 发表于 2021-2-15 11:34
回复也是一种美德
呜呜~有回帖奖励也少人过来看 FlyHULI 发表于 2021-2-15 11:35
呜呜~有回帖奖励也少人过来看
不是为了积分,要有学习态度多看看,看了就应该回一下:lol 经典也找出来分享 我来回复!