25个字符的产品密钥如何工作?

问题描述 投票:12回答:3

Microsoft产品和其他产品通常具有5组5个字符的产品密钥,如下所示:

ABCDE-12345-ABCDE-12345-VWXYZ

如果密钥有效,产品如何知道?某种密码学?如果我想在我的代码中使用这种产品密钥,是否有库?

windows registration
3个回答
5
投票

您可能想了解如何实现序列号验证功能的this article。它还涉及一些先进的技术,如如何保持密钥,泄漏密钥等。

简而言之,这种密钥通常有三个基础字段:

  • 实际序列号,文章称之为“种子”
  • 一些验证数据;代码实际上只检查了部分验证数据
  • 校验和,CRC或其他简单的拼写错误机制

通过仅在代码中实现部分验证数据检查,您可以执行“真正验证”(在这种情况下,其余验证发生在您的服务器上)或通过检查新验证数据的不同子集来锁定密钥。版本。


2
投票

特别是对于Microsoft产品,是一些可用的知识。

Windows XP上的产品密钥使用自定义字母表进行base24编码。它由一个序列号(源称为“Raw Product Key”)和一个数字签名组成。 source

Windows 8及更高版本的产品密钥在软件专利申请WO 2012067888 A1中有一些文档。它仍然是base24编码的(act 57 et seq。,实际上意味着'N'的位置被用作解码的第一个字符)。它的要点是Windows 8及以上产品密钥有这些部分:

  • 组ID,表示类型/编辑/系列/分发渠道,请参阅第34条)
  • 序列号(与组ID一起形成“原始产品密钥”)
  • 安全值1和2(不同级别的安全性,都可能是签名,参见行为34 et seqq。,46,55)
  • 校验和(第56步,实际上是在键上截断的POSIX cksum)
  • 升级位

0
投票

有四种方法可以确认密钥。

  1. 简单比较exe中的现有字符串(非常容易破解)
  2. 算法与输入的字符串进行比较(几乎和#1一样简单。完全取决于破解者的逆向工程技能)。
  3. 通过互联网与服务器进行比较。 (可以规避)
  4. 硬件加密狗。

根据您从microsoft获得的产品,他们使用上述前3种机制之一。例如,他们的操作系统通常是电话回家;但他们的开发工具要么已经关键,要么进行算法比较。他们的一些旧操作系统用于执行算法。

有一个修改过的选项3,但这通常只是让应用程序电话回家,通常是基于某些事件。在OS的情况下,MS使其验证输入的产品密钥以用于某些Windows更新和其他产品下载。此外,根据许可证密钥本身,它可能每月一次打电话回家。作为旁注,中国有一个IE6安装基础的原因。

第四种选择也可以被规避。通常,破解者只会修补您的产品以绕过执行硬件检查的代码部分。

© www.soinside.com 2019 - 2024. All rights reserved.