程序如何判断您是否在演示期之后使用过它们?



在某些程序上,您可以在演示期内运行它们,例如"十个任务"或"5小时",然后您需要决定购买它们以继续使用它们,但是如果您删除并卸载该程序然后重新安装它,它知道它以前已安装并且不会让您再次运行演示。

它是如何做到这一点的?当您下载它时,它会向 cdn 发送一个识别号(ip ?)以让它知道您之前已经下载过它,或者当程序本身安装时,它会检查以查看以前安装的痕迹?

大多数"演示"软件通过从恶意软件中借来的功能来实现这一点:卸载不完整。属于软件的文件或注册表项不会在卸载时被删除。重新安装时,软件会看到其余部分并可以对其执行操作。

这种剩余部分经常使用的藏身之处是系统目录(在 UAC 到达之前),但许多人注册了一些类 GUID - 据我所知,没有人真正了解注册表中的哪些类是或不是真实的。

有很多方法可以实现这一点。

最简单的

实现方法(也是最简单的绕过方法)

  • 首次运行时,在某处创建注册表(或文本文件)条目
  • 每次运行任务(或应用)时向计数器添加 1
  • 不要在安装程序应用程序中包含此文件/注册表(因此卸载后它将保留)
  • 如果在任何时候计数过高,请通知用户试用版已过期。

使用图像差异工具,此方法很容易识别和克服。

最难克服或绕过的方法是使用服务器。在第一次运行时,根据用户的计算机名称、驱动器序列号等生成哈希代码,并将其发布到您的服务器。然后,服务器将其作为唯一安装进行跟踪,并允许应用运行。每次运行应用时,都会更新服务器。这样,用户就无法找到痕迹导航并将其删除,因为它们位于您的服务器上。缺点是这种方法需要互联网连接。

可能还有更复杂的方法可以实现此结果,但以上都是我遇到的实现。

我的软件在用户系统中放置了痕迹导航,用于检查以前的安装。这比针对您的IP进行互联网检查要困难一些(假设您不知道要查找什么或在哪里)。因为您始终可以欺骗您的连接信息,或者只是在安装时断开与互联网的连接。

最新更新