Create a trial application

I have an application and i want to create a trial version of it. I need a decent solution. My first approach is to create two values in an key registry, in which to hold application install date and last open application date, to control the backdate of the system. But the values in registry keys can be modified by anyone, so this is not a good solution....
if anyoane can help me, pls do...


  • Actually a lot of programs use a hidden registry entry and this will keep like 90% of the population from cracking your software.

    There is absolutely no fool-proof way to secure software on someone's hard-drive - just because of the fact that the software itself is now in another person's hands - and especially with .NET - disassembly is really easy to do.

    However, there are a lot of tools out there that will allow you to obfuscate your code, and if you compile your assemblies using an open key it will become much harder to break into.

    Basically your goal is not to eliminate people from hacking your software, but reduce the number of people that are able to as much as possible.

    That being said - what you might try doing is using an encryption hash name for your registry key/folder based off of user-specific/hardware specific information. Hide this in one of several different areas of the registry and make the actual values something cryptic and not easily identified - or better yet, encrypt the values in a way that tampering or removal will cause your software not to work.

    Also - depending on what kind of application you are making, you might try using an alternate deployment method. For example - writing something in silverlight would mean that the person would run your application in a web page. It would still be a full-fledged application, but you would have more control over assembly access - who receives what version of your program.

  • thanks for your reply....
    another question :) (i don't have much experience with encryption algorithm)
    how can i "encryption hash name for your registry key/folder based off of user-specific/hardware specific information",
    and decrypted as well?

    thank again
  • when hashing you don't want to neccessarily what to decrypt the actual hash - you just want to match it... so if you take let's say the following information:

    VideoCard Make

    and put it into a string
    "Mikes Computer NVidia GeForce Intel Core Duo"
    and then hashed it with MD5 (this is available in the System.Security.Cryptography library) - you would get something like this...


    Now if you take that same string - you can always find that same entry - but if someone were to even find your registry entry and try to copy it to someone else's computer (let's say from a registered user) you wouldn't be able to find it because you would end up with a different hash.

    As for encrypting the data in your values - there are like a million different approaches to this - you should come up with your own. Try looking up terms like DES and TripleDES - but you might just want to come up with your own method - maybe using a hash key to garble and de-garble your data. It wouldn't really need to be anything very complicated.
  • Because I've seen this alot in posts I went ahead and blogged a really simple Triple DES encryption implementation.

    [link=]click me[/link]

    Check it out and use it how ever you want.
  • You are much better off using a ready made licensing tool instead of trying to come up with your own. Check out [link=]CryptoLicensing[/link] which does trials as well as full licenses and other scenarios too.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!