how to make software that can not be illegally redistributed

I want to release a program, which during installation will requiere user
to input a key specific for his/her machine. The problem is that somebody
very smart could dissasemble the program, see my algorithm and make many illegal copies.
I'd like to know if there is a 100% safe way to avoid this problem.
If not, what would you recommend me in order to develop a software that can not easily
be illegally redistributed. Thanks


  • There are many teqnics to make a cracker to give up to crack you program , there is no perfect solution , all programs can be cracked ...

    The better protection is make you code free :)

    You can read some teqnics in the assembly files section there are there some tips to make your code harder ...
    see sites that have crackmes , reverseme , and other they normaly relese the source code ... there are anti softice teqnices , anti breakpoint , and lots other ... , some teqnics make the the debugger crash ...
    I good magazine is the codebreakers , it have some good teqnics about anti crack ...

    Probably the best is :
    -> encrypt your code
    -> make your code anti breakpoint
    -> check if a debugger is loaded or if you are in a debugger if yes make you code go to a dummy code and make cracker think that he have cracked your code or give him a funny key, after a week or so make your code ask for a key again this time the cracker have give the false key or the uncracked version to internet , this will make cracker popularity get down , and there cracks will start to be reject ( i guess lol )
    -> make decoy , when you get the key dont start to see if they key is valid , first make many stupid and compilicated thinks , code that does make nothing but it seems that it does ... most crackers will have dificulti to find the validation key routine and will give up ...
    -> delay , make validation code to delay , this is good for a brute force atack ( i think no one use it but it seems a good thing to put here )
    -> scramble data and code , in intel since function are CISC , the debugger will show data as code and will shown incorrect function after that data garbage , The great olly debugger dont have this problem because it makes a code analisys ..
    -> Make a very complicated valid key algoritm , dont use a tiny loop
    actuly if you can use a algoritme that use many jumps , and is very extended , if the cracker have to work with lot of detail he probably get bored and he give up
    -> dont make things like , if ( validKey(key) ) {...} ,this is cracked in one second ... make you key to be used in more funtion ...
    -> i dont know if this is a good one but , make a checksum of your code , then some times see if your program file have the same checksum , if not than some one have modified your code ... this will make paching a litle harder i think ... make your check in random time if you make this every time is more easy to get your check code rotine ...

    I dont think that hardware key are a good thing , if some one wants to change is hardware it will have to contact you ... and is not realy a very hard teqnic to crack i think ...

    sorry about the english but i am portuguese , may be like you :)

  • With a Hardware key in parallel port.The LICENSE it's in a eprom (like 24c04 or 24c08 a i2c bus).Eprom MUST have a binary code with INTELLIGIBILITY by Program "Build Number" or "Serial Number" .The ALGORITHM (THAT DEPEND BY Serial Number) CONTAIN offsets of functions in code segment of EXE file.

    Sory about the English , Im from Albania
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!