代码之家  ›  专栏  ›  技术社区  ›  Edwin Yip

如何将“记录计数限制”混合到试用版的程序逻辑中

  •  1
  • Edwin Yip  · 技术社区  · 14 年前

    你有没有想过对试用版软件实行“记录计数”限制?

    1. 假设它是一个任务管理程序;
    2. 试用版和完整版是分开下载的;

    我的问题是,演示如何将这个“任务计数限制”应用到核心程序逻辑中,以便不容易绕过它?例如,显然可以轻松绕过以下代码:

    if (varTotalTaskCount > 20)
    {
      ShowMessage("This is a trial version and you can create up to 20 tasks only");
      return false;
    }
    

    有什么想法吗?谢谢!

    2 回复  |  直到 14 年前
        1
  •  1
  •   Sani Huttunen    14 年前


    在试用版中,使用指定大小的静态数组/列表/etc,不进行边界检查。 另外,在试用版中添加您建议的代码,这些代码很容易被忽略。

    这意味着如果存在最大限制检查,它不会崩溃,但是如果破解程序删除检查,它会崩溃。当代码包含许多错误时,修复代码就比较困难。

    最后,我不建议这样编码,但如果我想使它尽可能不诉诸客户端服务器类型的保护饼干那么这就是我会做的。

        2
  •  0
  •   Piskvor left the building Rohit Kumar    14 年前

    好吧,定义“容易”;)

    如果这是用解释语言(如PHP)编写的,那么最好的办法就是代码混淆。

    通过编译程序,您可以更好地隐藏此逻辑(例如,通过使用自修改代码,或执行各种计算来计算任务限制),但最终,您仍然必须做出“是否试用”的决定。

    最后,如果有人愿意破解你的程序,他们会的。

    推荐文章