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:
Cons:
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.