Monday, February 14, 2011

How to make .NET desktop software that expire

There are a number of technical solutions that range in complexity and how easy they are to circumvent.
  • Write the date/time first used to a file. The user simply needs to find the file and update it themselves with a newer date. You could improve the security by encrypting the date/time before writing it.
  • Write the date/time to the registry. Slightly more secure - but only via obscurity. Again perhaps use encryption to hide the actual data.
  • Write the date/time to two (or more) places.
  • Store the date/time on your server. This does require that the user has to be on-line to use your application.
  • To prevent unauthorised copying you could require that the user enter a license key when they install the software. This would be stored in the registry. You then get into the problem of what to do if someone distributes their key. A call back to your central database would help here, but you'd need to store your users IP address (for example), though this would fail if they didn't have a static IP or there were multiple users behind a corporate firewall.

kunkun-laptop .... ;)