【问题标题】:Prevent time cheating of Trial Product: Which Files to monitor?防止试用产品的时间作弊:监控哪些文件?
【发布时间】:2013-05-07 06:31:44
【问题描述】:

我正在阅读试用产品和安装产品前用户转发时间的挑战,以便它不会长时间过期。我阅读的策略之一是检查某些文件的修改时间并与当前时间进行比较,看看是否有意义。我的问题是,在 Windows 和 Linux 中哪些文件最适合用于该任务?为什么你认为最适合这项任务?

由于我不记得该网站的网址(当时正在手机中阅读,我现在无法复制网址),如果我错过了,我将感谢任何关于该主题的链接,甚至可以回答!

【问题讨论】:

  • 只允许启用 NTP 的计算机怎么样?
  • 默认情况下是否为所有计算机启用(OS/BIOS 或其他)?我不想仅仅因为他没有启用 NTP 而干扰客户。 NTP 的优点是什么?
  • 几乎所有操作系统都可以禁用与 NTP 的时间同步,即它们可以设置为禁用 NTP 的任何时间。
  • 所以假设不是技术宅的用户禁用了他的计算机 NTP。 (s)他将无法使用该产品,并可能被关闭!所以我会跳过这件事。谢谢你提出这个问题!
  • 注意:在 Windows 中,它只是 Date / Time Settings 中的一个复选框。即使是傻瓜也知道如何禁用它。

标签: c++ activation time-trial


【解决方案1】:

在您的安装程序包中动态嵌入下载日期和时间。

告诉客户在 48 小时左右之前激活试用产品。 (激活后他可以在整个试用期内使用)

然后,在安装时,检查系统时间(客户端机器时间)是否与安装程序的日期时间匹配。

如果不匹配,则不允许安装。

编辑:

可以通过以下方式完成。

1.使用加密:

单击下载按钮时创建一个带有下载时间戳的 XML 文件。

使用 OpenSSL 等加密库创建私钥

从私钥中提取公钥。

使用私钥加密xml文件,生成签名文件。

将EXE文件、xml文件、公钥文件和签名文件发送给客户端。

当客户端尝试安装时,您的 EXE 使用公钥验证签名和 xml 文件。

如果签名匹配,它会检查系统时间戳是否不超过 48 小时。并且不应该小于下载时间戳。

如果黑客尝试更改 XML,签名将不匹配,从而阻止产品的安装/后续使用。

2。修补

虽然不推荐,但可以修补 exe。 Can a web server dynamically generate an executable on the fly?

这可能是资源密集型的。

【讨论】:

  • 可能效果不佳。顽皮的用户仍然可以使用其他软件更改嵌入的日期和时间或冻结系统时间。很多中国的淘气软件都是这样做的。
  • 我嵌入哪个日期?我想阻止 Shivan 指出的事情,尽管我不想与他们打得更深。我会忽略一个坚定的饼干,但绝对不会尝试!
  • @Shivan 嵌入式日期时间可以通过我们自己的软件加密,然后打包成二进制文件。没有人可以解密它。此外,我们可以使用 OpenSSL 等机制来保护它
  • @Stefano 您需要在您的末尾嵌入来自适当时间源的日期时间。
  • @Shivan 处理时间冻结,如果app启动时和app退出时时间相同,app可以理解license有问题,阻止后续使用。我们还可以根据产品可以试用的小时数而不是天数来授予许可。例如,只需授予 100 小时的访问权限。始终跟踪上次应用程序关闭时间。
猜你喜欢
  • 2013-12-24
  • 2012-08-20
  • 2023-03-17
  • 2019-06-20
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2013-10-27
相关资源
最近更新 更多