首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >软件关键是如何工作的?

软件关键是如何工作的?
EN

Security用户
提问于 2012-04-01 06:31:17
回答 4查看 40.9K关注 0票数 13

我见过很多次,有很多不同类型的软件,但我一直想知道的是,软件密钥是如何知道生成什么密钥的。我知道它的基本原理: keygen查找软件安装文件中的某个位置,并创建一个与某个加密文件匹配的密钥,该密钥允许程序工作。但我想知道他们是如何做到的,以及如何预防。这是一个多部分的问题。

  1. 密钥系统是如何工作的?
    • 程序员通常如何创建基于密钥的软件。我是一个中级程序员,但我从来没有学到多少关于安全/反盗版方面的知识。他们如何创建和/或识别允许软件开始工作的密钥?

  2. 它通常在哪里找到这个“加密文件”?
    • 它是在计算机上的物理文件中,还是在它调用的站点数据库中?

  3. 公司如何加密该文件?
    • 我会认为,密钥必须存储在不仅仅是明文,他们做了什么来保持它的加密?

  4. keygen用于创建密钥的方法是什么?
    • 我曾经玩过一些密码破解软件,比如"cain & able“,我注意到,使用一些密码破解方法,比如蛮力和字典,它在几年内给了我ETA,不过键族似乎会立即创建密钥。他们是否完全采用了不同的方法?

  5. 公司可以采取哪些措施来防止盗版软件中使用密钥?
    • 我开始编写我自己的软件来进行分发,我想知道我可以使用哪些现有的、可靠的简单方法来防止
EN

回答 4

Security用户

回答已采纳

发布于 2012-04-01 07:07:58

密钥系统是如何工作的?

这取决于有很多的实现。其中一个是在堆栈过流中讨论的:

假设您不想为每个用户进行特殊构建,那么:

  • 为产品生成一个秘密密钥
  • 取用户姓名
  • 用(例如) SHA1协调用户名、密钥和哈希
  • 将SHA1哈希解压缩为字母数字字符串。这是个人用户的“产品密钥”
  • 在程序中,执行相同的哈希操作,并与产品密钥进行比较。如果相等,好的。

注:每个密钥方案都可以破解。这就是为什么很多工具使用在线验证。

通常在哪里找到这个“加密文件”?

使用前一种方法时,通常没有加密文件。可能还有其他方法用另一种算法生成密钥,但它们从不将所有密钥存储在程序中。

公司如何加密该文件?

如果您指的是将用户键入的密钥存储在系统中,那么有时会将其保存在配置文件中。有时,他们使用带有硬编码密钥的系统加密(如AES)来加密该文件。

键元用来创建密钥的方法是什么?

因为有些人可以找出程序使用的方案,并在他们自己的keygen中实现它。

公司可以采取哪些措施来防止盗版软件中使用密钥?

在线激活,但是你越难让客户使用该软件,他们购买它的可能性就越小。最后,没有一款软件可以防止盗版。如果有的话,像Adobe和微软这样的公司就会立即雇用你。

票数 10
EN

Security用户

发布于 2012-04-11 18:33:03

计算机软件的序列号有一个特定的模式,它允许安装程序或应用程序检测它是否是合法密钥。一个非常简单的例子是,每个序列号都有三个出现在其中的数字5,所以1932-1253-2319-5512将是一个工作序列号。在现实生活中,数字之间的关系当然会更加复杂。

所提供的软件包含一个检查串行是否有效的算法。软件创建者有一个允许他为产品创建序列号的软件。

为了创建一个keygen,一个cracker组(专门负责破坏复制保护方案的人)分析程序的可执行部分,以找到检查序列的部分。然后,他们重建算法,以创建基于检查代码的序列化。完成的keygen是一个应用程序,应用该算法创建序列号。

有时密钥实际上并不包含算法,而是一个有效序列号的列表,其中一个是随机选择的。

在后面的service中,Windows xp的keygen更复杂,因为Microsoft不仅检查密钥是否有效,而且还检查密钥是否已随副本出售,是否已在另一台计算机上使用。keygen将大量请求发送到Microsoft服务器,以检查它是否是工作密钥。

票数 7
EN

Security用户

发布于 2012-04-02 12:10:57

密钥系统是如何工作的?

最常见的形式是if (some-complex-or-not conditions-here) then (OK)。被检查状态的复杂性仅限于你的幻想

它通常在哪里找到这个“加密文件”?

没有任何常见的模式,在哪里和如何存储和读取这些信息。它可以是文件,而不是文件(例如,在Windows情况下,注册表项)

公司是怎么加密这个文件的?

通常的实际操作--永远不要用纯文本存储,在存储前使用不可逆转的转换方法,但是--即使是纯文本密钥--对于密钥激活也可能是防弹的:被盗密钥一旦激活,就不会从第二次注册(可滥用和可破解的方法,但可能在某种程度上起作用)。

keygen用于创建密钥的方法是什么?

验证有效性的逆向工程方法有助于创建密钥数据的逆向工程算法。

公司可以采取什么措施来防止在盗版软件中使用密钥?

非技术合理的产品价格。在这种情况下,键盘将出现(五月)无论如何,但它将更多的“只是为了乐趣”游戏的破解团队,而不是要求(并与直接影响)的大众消费产品。

技术上-防止在调试器下运行,结合文件中的加密代码(内存中的解密,一些敏感部件可能有多层),内存操作链,外部存储中密钥的在线验证(见以前的方法,这些方法也分别适用于检查程序).

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/13343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档