I`m looking for ideas to implement a security feature in an application. All ideas and suggestions are greatly appreciated.
What I have is Software Application. I want to release the software for a limited period of time with a Serial Key. Lets say 30 days. After the initial period the software is deactivated and the user will have to enter an Activation code for complete install. The serial key will be used to generate the Activation code.
How do I prevent people from using the application again by changing the dates. Lets say I encrypt the date of creation in the serial key, and the application checks for system date and after 30 days, it expires or if someone changes the system date to prior to what the key was created the application locks up. What if the user changes the system date within the 30 days trial period? Lets say I create the Key on Jan 1st 2009, and the application locks up anytime before Jan 1st and anytime after Feb1st. But the user can change the date between and Jan1st and Feb 1st and use the application. How do I prevent this? I`m sure lot of applications implement this feature. I`m looking for ideas.
Also, are there any libraries to create Serial / Activation codes. I`m using C#, VS 2005. The application are run on stand alone computers and they don`t have an internet connection for online verification.
What is the best approach?
This is really hard to do, usually anyone with enough determination will break though whatever you put up to stop it, the quality of commercial tools varies alot as well from complete ____ breaks when you sneeze at it to very good but here's some tools you can look at :Dotfuscator , CodeVeil , Salamander , .NET Reactor. fairly sure there's more out there (lots) microsoft was even selling some but they somehow halted that while the division tries to find a new spot within microsoft.
Think its starting to get a rather fuzzy line most products in obfuscation ran out of ideas and starting to add 'trial' features just to offer additional value think reactor has a side product called IntelliLock and think xencode or xenocode is offering somthing similar as well. Also rememberd microsoft offering called SLP