SDK for software license keys?

Hi,

We need an SDK (or a method) for adding license keys for our software.

We would like to provide trial versions and paid versions of our software.

At this time, it does not need to be very advance, but we would like to restrict usage somehow.

Can anybody suggest a good SDK (or way) to do this

(Does this kind of tool come with Visual Studio or as a plug-in / extention )

Thanks :-)



Answer this question

SDK for software license keys?

  • Rajesh Patel

    yes..it's very helpful. Thanks for giving some way to remember about creating protected sotware..It's very helpful..

  • Virrr

    Thanks!

    Do you know of any tutorials on this - how to implement it on our own (software key check, trial version etc.)


  • Ondis

    Thanks a lot - that is very helpful
  • saarar

    There are some nice tools availeble for this, for example: Software Shield.

    But you asked for a simple not to advanced trail version. Then you can create your own, just store the time of installation somewhere and when you application starts it checks if the trial time isn't expired. If it is expired you inform the user and exits.

    When you create your own, you have to remember that the user can adjust his system clock. So you have to build in that simple security also.


  • Fred Bernstein

    Take a look at the following article about creating protected software: Fravia's HOW TO PROTECT BETTER.

    Here are some things to remember when you gonne protect your software and create a trial version:

    1. Never use meaningful file or procedure names such as IsValidSerialNum (duh.) If you do use functions for checking purposes, place at least some required code that your program really needs, in such a function. When the cracker disables the function, the program will produce incorrect results.
    2. Don't warn the user right after a violation is made. Wait later, maybe until the next day or two (crackers hate that).
    3. Use checksums in DLL's and in the EXE. Have them check each other. Not perfect but it just makes it harder to crack.
    4. Pause a second or two after a password entry to make brute force cracking unfeasible. Simple to do, but rarely done.
    5. Self-heal your software. You know, error correction like modems and hard drives use. The technology has been around for years, and no one uses it on their software The best thing about this is that if the cracker used a decompiler, they may be looking at a listing that is no longer valid.
    6. Patch your own software. Change your code to call different validation routines each time. Beat us at our own game.
    7. Store serial numbers in unlikely places, like as a property of a database field.
    8. Store serial numbers in several places.
    9. Don't rely on the system date. Get the date of several files, like SYSTEM.DAT, SYSTEM,DA0 and BOOTLOG.TXT and compare them to the system date. Require that the time be greater than the last run.
    10. Don't use literal strings that tell the user that their time is expired. These are the first things to look for. Build strings dynamically or use encryption.
    11. Flood the cracker with bogus calls and hard-coded strings. Decoys are fun.
    12. Don't use a validation function. Every time you validate the user, write your validation code inline with the current process. That just makes more cracking for the cracker.
    13. When using hard-coded keys or passwords, make them look like program code or function calls (i.e., "73AF" or "GetWindowText"). This actually works very well and confuses some decompilers.
    14. Finally, never reveal your best protection secrets :-)


  • twolfkg

    Thanks you very much for your fast response!
    When you experience any problems implementing this, please lett us know!

    - Good luck



  • SDK for software license keys?