我正在开发一个应用程序,我需要制作一个将在30天内过期的演示版本。 我现在的想法是在项目资源中存储的简单txt文件中存储应用程序首次启动时的当前时间(因此不必在硬盘或注册表上写入),每次程序开始检查是否已过了30天。 但是,如果用户将时间重置为早期状态怎么办?
然后我的应用程序仍然会启动,因为“当前日期”可能是“首次启动”后的第1天..
有什么方法可以获得一些信息以及第一个日期(或者说是insted),以确保应用程序首次启动的特定时间?
感谢您的时间。
答案 0 :(得分:0)
其中一个选项是从某个外部服务器检查日期时间,而不是从本地系统检查。但这也有可能破解,因为用户可以在其间放置代理,该代理将充当您的应用程序的外部服务器,并且此代理可以在用户想要的任何时间发送。如果您想为新手用户提供解决方案,外部服务器方法很好,但任何智能用户仍然可以破解应用程序。请记住,在客户端计算机上运行的任何代码都可能被破解,您只需要在应用程序代码中翻转正确的位:)
答案 1 :(得分:0)
我在测试版中对我的一个程序的代码进行了简单的检查。它几乎就是你所说的。在初始代码中是硬编码日期。然后逻辑只测试当前日期是否早于硬编码日期。非常原始,它依赖于用户系统日期。但是一旦过去,除非更改系统日期,否则程序将不会运行。正如我所提到的,我将此用于测试不适用于具有评估期的生产程序。为此,我使用Infralution License Tracker。这是付费软件,但它确实允许设置评估期以及代码的实际许可。
答案 2 :(得分:0)
有趣的问题 - 如何以某种方式编码初始日期时间 - base64甚至加密somekind),然后每次运行应用程序时都存储日期时间。
这样你就可以通过检查每个日期时间来检测不一致性,如果有趣的业务正在进行(例如,今天的日期早于上次日期),你可以关闭用户。