天天看点

为什么“111-1111111”是有效的Windows 95 产品密钥?

作者:薛定谔D家肥猫
为什么“111-1111111”是有效的Windows 95 产品密钥?

安装1995年发布的“Windows 95”时,系统会要求您输入产品密钥,但即使产品密钥是简单的数字字符串(例如“111-1111111”或“000-0000000”),也可以通过产品密钥的验证。 安全研究人员stacksmashing在一部网络视频《Why 111-1111111 is a valid Windows 95 key - YouTube》解释了这样简单的产品密钥也能认证的理由。

下面 Windows 95 产品密钥输入屏幕。 如果输入了错误的产品密钥,将无法继续安装,但即使是简单的产品密钥“111-1111111”也会被识别为“正确的产品密钥”,从而可以继续安装。

为什么“111-1111111”是有效的Windows 95 产品密钥?

即使将前三位更改为“000-111111”、“001-111111”、“567-111111”等,也可以继续安装。

为什么“111-1111111”是有效的Windows 95 产品密钥?

但是,这并不意味着“前三位数字中的任何内容都可以”。 若要尝试,请键入“3-333”。

为什么“111-1111111”是有效的Windows 95 产品密钥?

安装无法继续。 此外,如果在前三位输入“444-1111111”、“555-111111”等“0、1、2以外的3个连续数字”,也无法继续安装。

为什么“111-1111111”是有效的Windows 95 产品密钥?

接下来,尝试将最后 1 位数字更改为“7”以外的数字。 首先,键入“000-0000001”。

为什么“111-1111111”是有效的Windows 95 产品密钥?

但是,“000-0000001”未被识别为正确的产品密钥,并且无法继续安装。

为什么“111-1111111”是有效的Windows 95 产品密钥?

如果将最后一位数字逐个增加,最后“000-0000007”被认为是正确的产品密钥。

由于按顺序增加最后 1 位数字,发现以下产品密钥被识别为正确的产品密钥。

为什么“111-1111111”是有效的Windows 95 产品密钥?

这些产品密钥的特点是“当所有数字相加时,它就变成了一个'可被 0或7 整除的数字'”。

为什么“111-1111111”是有效的Windows 95 产品密钥?

开头的“111-111111”也一样,所有位数的数字合计起来就是“7”。

为什么“111-1111111”是有效的Windows 95 产品密钥?

从以上验证结果来看,认为产品密钥的最后7位数字是根据“所有数字的总和是否能被7整除”来判断的是否正确。

为什么“111-1111111”是有效的Windows 95 产品密钥?

接下来,让我们使用逆向工程工具“Ghidra”检查产品密钥的通过/失败部分的机制。

为什么“111-1111111”是有效的Windows 95 产品密钥?

逆向工程发现前三位数字“333”、“444”、“555”、“666”、“777”和“888”被列入黑名单,其他任何三位数字都可以。 此外,还发现连接前三位数字和后七位数字的字符没有被检查。

为什么“111-1111111”是有效的Windows 95 产品密钥?

此外,事实证明它包含代码“如果所有数字的总和能被 7 整除,则通过”。

为什么“111-1111111”是有效的Windows 95 产品密钥?

总结一下,Windows95的产品密钥的条件如下:

・前3位除了“333”“444”“555”“666”“777”“888”“999”以外都可以;

・第4位是数字、文字、任意什么都可以;

・最后7位的话,各位的合计被7整除就可以了;

为什么“111-1111111”是有效的Windows 95 产品密钥?

所以只要满足条件,“YOLO0000000”这样的产品密钥也可以继续安装。。

为什么“111-1111111”是有效的Windows 95 产品密钥?

以上条件适用于 Windows 95 的零售版本。 对于 Windows 95 的 OEM 版本,以下条件适用:

・开头为1~366;

・紧随开头的是“95”“96”“97”“98”“99”“00”“01”“02”中的任意一个;

・在连字符之后输入“OEM”;

・继连字符之后,合计可以被7整除的7位数。但是,第一位仅限于“0”;

・末尾的5位数只要是数字什么都可以;

为什么“111-1111111”是有效的Windows 95 产品密钥?

继续阅读