My desktop app has a 30-day trial period for new users. The first time a user starts the desktop app, the app gets the current date from the computer, adds 30 days to it, and saves this in the preferences.
Some users have worked out that if they set their computer date back in time when starting my software, then changing the time to the current time after it started, they get an indefinite trial.
I don’t usually put much effort into shutting down things like this, but I think there must be a pretty simple solution for this one.
Any suggestions as to an approach I can use that prevents this problem?