【问题标题】:Incorporating shareware restrictions in C++ software在 C++ 软件中加入共享软件限制
【发布时间】:2010-09-15 11:50:51
【问题描述】:

我希望在共享软件的基础上实现我的软件,以便用户 给定试用软件的最长试用期(例如)30 天。在购买时,我打算给用户一个随机生成的密钥,输入时 再次启用软件。

我以前从未走这条路,所以任何建议或反馈或指向如何完成此操作的“标准”方式的指针将不胜感激。

我预计用户不会通过更改系统日期或类似的方式作弊,尽管这可能值得考虑。抱歉,如果此主题之前出现过。

【问题讨论】:

    标签: c++ time restriction shareware


    【解决方案1】:

    关于随机生成的密钥,如果密钥实际上是随机的,您将如何验证密钥是否合法或是否是伪造的?看看文章“Implementing a Partial Serial Number Verification System”,它非常好,并且很容易用任何语言实现。

    关于时间试验,基本的解决方案是将主要可执行文件的创建时间与当前系统时间进行比较,然后根据差异采取行动。这假设您的安装程序将文件创建时间设置为安装时间,而不是保留您编译它的时间! :)

    【讨论】:

    • 其实史蒂夫,是的,你是对的,我不是说“随机”键。
    【解决方案2】:

    还要注意时间的剧烈变化,如果当前日期神奇地小于安装日期等等。

    绕过这种类型的日期锁定的一种方法是在安装之前将日期更改为未来几年。所以你应该检查今天的日期不小于安装日期。

    【讨论】:

      【解决方案3】:

      如果您的软件真的很有用,那么在您看到第一个订单之前,您肯定会在 P2P 上找到破解版。无论您要实施的许可证执行代码多么复杂,都会发生这种情况。

      也就是说,只需将首次运行日期存储在某个地方(可能是注册表,如果在 Windows 上)并在 30 天后拒绝启动,或者只是打开一个提醒窗口。

      不要担心作弊者,无论如何他们都会找到绕过您的限制的方法。担心您的诚实客户,并努力不让他们的生活更艰难。

      Eric Sink 写过更多关于此here (section 4) 的文章。

      【讨论】:

        【解决方案4】:

        在第一次启动时,您可以将实际日期存储在某处。
        每次启动时,您都会查找存储的日期,如果存在,则读取它,如果在第一次启动后超过 30 天,则停止程序。

        【讨论】:

          【解决方案5】:

          请参阅this library

          说明:

          将任何应用程序转换为限时共享软件。生成序列号进行注册。一个函数库,提供具有可靠加密的灵活锁定系统。易于实施。支持VB、C++、Delphi等多种语言。

          【讨论】:

            猜你喜欢
            • 2011-09-14
            • 1970-01-01
            • 2010-10-27
            • 2010-11-03
            • 2018-12-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多