【问题标题】:Install only on one machine只安装在一台机器上
【发布时间】:2010-01-25 15:29:57
【问题描述】:

在网页中输入有效的序列号后会下载一个 Windows 程序。现在,我想限制用户仅在一台 PC 上安装程序,即他或她第一次安装的那台。

我需要一些关于创建这样一个系统的建议。谢谢。

附:必须在网页而不是安装程序上输入序列号。

【问题讨论】:

  • 使用mac地址(查看你的标签)可能不是一个好主意,因为mac地址可以通过网络设置修改(我一直这样做是为了让我的互联网正常工作) .
  • 是的,不要使用 MAC 地址。
  • 如果你让它变得足够复杂来完成这项工作,软件将被认为是不可用的。人们有正当理由需要更改您可能关闭的任何内容 - 您可能会让他们决定不使用该软件,而不是再次执行该过程。

标签: installation mac-address serial-number


【解决方案1】:

听起来您需要创建一个可下载的 activex 控制程序,该程序将在客户端机器上运行,它将在其中进行询问:

  • 网络适配器的 MAC
  • Windows 版本,包括 SP
  • 硬盘序列号
  • 处理器品牌和 CPU 类型

然后将信息转发回网站,然后生成密钥,并将密钥附加到下载安装程序,并允许用户下载安装程序,然后在运行时读取密钥并与机器核对正在运行。

唯一的事情是 ActiveX 必须用 C/C++ 编写,因为你不能在 .NET 语言上这样做,因为这是假设客户端的机器将安装运行时,恕我直言,这是一个危险的假设。

希望这会有所帮助, 最好的祝福, 汤姆。

【讨论】:

  • 这对我来说似乎更有可能是一个解决方案。因为我的客户不希望用户通过在 setup 可执行文件中再次输入序列号来输入两次序列号。在将下载包发送给用户之前,我并不急于再次生成下载包(在其中注入用户输入的序列号)。
  • 所以如果我理解正确,当用户在提供序列号后单击下载链接时,ActiveX 控件会运行并匹配序列号和“哈希”。如果软件至少被提供的序列号下载过一次,则什么也不做,允许用户再次下载该软件。如果没有,请更新串行下载计数并插入 ActiveX 提供的哈希。并且在安装之前,以与 ActiveX 相同的方式再次生成哈希并将其发送到服务器并检查。
【解决方案2】:

通常的解决方案是:
创建一个描述系统的哈希(虽然不知道获取它的确切方法,GIYF)并将其与序列号结合,所以当用户安装程序时,他必须输入序列号,然后得到一个他必须输入的密钥在网站上,将输入的密钥拆分为序列号和系统哈希,并检查系统哈希和序列号是否与存储的匹配,然后返回另一个密钥(如果序列号已被使用,则返回错误),他必须进入程序.

使用 Mac 地址作为系统密钥不是一个好的解决方案,因为它很容易被伪造。

【讨论】:

    【解决方案3】:

    序列号基于某些硬件配置。如果硬件发生变化,则使序列号无效。 Microsoft windows 在activation of the product 期间使用这种方法。

    希望这会有所帮助。

    【讨论】:

    • 问题是如果他想首先通过一个密钥来限制下载,那么他需要生成2个密钥,这不是一个好的用户体验。
    【解决方案4】:

    如果您编写自定义安装程序,那么您可以在成功安装后向您的 Web 服务器发送一个确认,该确认发送一个从硬件生成的序列号,以及他们用来下载文件的序列号。

    然后,如果您发现相同的序列号#但硬件序列号不同,您可以回复说您无法激活软件...

    编辑

    这里是获取hardware info 的一些信息(假设是 .NET 环境,但您可以找到与您使用的环境类似的信息)。

    【讨论】:

      【解决方案5】:

      您可以尝试在安装时阻止密钥并在卸载时取消阻止密钥。这样他们每次卸载之间只能使用一次密钥。

      【讨论】:

        【解决方案6】:

        设置网络服务和数据库...他们必须验证才能安装。目前您的模型的问题是您正在保护或隐藏服务器后面的软件。您希望人们拥有该软件,即使他们(通常)不能使用它。串行密钥阶段应该用于在运行时解锁软件。

        它是唯一适用于电脑游戏的模型。

        您需要轮询各种硬件以生成 guid,将其与产品密钥进行哈希处理,这样您就有了可重现但复杂且难以伪造的数据。

        http://edn.embarcadero.com/article/26040 指向 .com 界面的链接以获取 guid

        另一种方法是使用 sysinfo 或 dxdiag 之类的东西并将结果保存到文件中...对其进行哈希处理并将其用作序列号。涉及的编码要少得多 - 但有点混乱。

        存储此文件并颁发安装密钥 - 然后轻松发现和管理重新安装。 即你真的不想去'电脑说不' - 这确实是一个营销机会

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-02
          • 2018-06-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多