Software protection

There are many ways to protect your intellectual product (software or information) against unwanted use.

The easiest one is just to mention that this is not allowed. The effect (in my opinion) - approximately 2-10% of users heed this call, the rest (majority) - do not pay attention or do not even notice this warning / ban.

The activation key / code or serial number: slightly more successful attempt to protect your software. Before the code or number will not be obtained without the assistance of the author / owner of intellectual property.

Working in the cadastre of Lithuania, I used a more serious protection for our software product - a dongle (electronic hardware key) - a little thing connected to a computer, without which our program was not working.

Pros: The software product ceased to be non-physical object, it could no longer be simply copy and use without buying. The vast majority did not know and did not even sought to bypass this protection.

Cons: Dongle costs money, it was necessary to install the driver for it, it had to be physically delivered to the client; but most importantly: there are many websites that offer to help circumvent this protection ... for half price of the cracked product.

Also, one dongle became corrupted physically while it was used by a client: in one cell there was inscribed a byte value "0x11111111" and this value could not be rewritten.

Trying to protect my software, I used the "bond" it to a particular hardware of the client computer, e.g. a network card or hard drive, hereinafter - the component. It looks like this:

The user receives a small program for a bind, wich after starting and getting the permission of the user, receives information about the client computer component, and generates a file with that information (in encrypted form).

The user sends the generated file to the author of the program.

Based on information from this file, the program's author "binds" his program to a component of the client computer, thereby protecting his software against unwanted use on other computers, and sends the protected program to the client.

Pros:

    • Such protection is free and does not require a physical presence near the client computer and work with it.
    • The binded program can be used on another computer - for that is enough to rearrange successfully the binded component from the "old" computer.

Cons:

    • The client can not accept that from his computer has been collected and transferred to "some kind of encrypted information."
    • Component of the computer may become unusable, or the client can tell so. Possible solutions depending on the price of the program: to require to pay again for a new "bind", or to sell the program together with the "binded" component, to control the using of both the component and the program (you say the component is broken - return it and get a working one, paying only for the new component but not for the program).

Of course any protection can be hacked, it is a question of time and / or money.

You can buy, crack or create your own software product - whichever is cheaper.