Software piracy significantly reduces revenue for software developers. Software pirates are more likely to be in countries where legal aid in malicious matters is very weak and inadequate, so the software provider is often unable to enforce their license terms. Solving this problem today is the best solution integrating security mechanisms into the software with the intent to break the software hard.
Recently, several methods have been sought to protect software against piracy by encrypting a secret message with the so-called watermark. This symbol contains the software information. This technique provides reliable, powerful software protection, since such watermarks can be easily removed by a person who has the secret key used to build a watermark. However, a malicious user may attack the licensing mechanism by making it unacceptable and confirming the presence of a valid license, even if it is not effectively available. In this context, the recently developed methods seem to be reliable.
Developers use watermarks to implant a unique identifier that seeks to enforce the legitimate owner's rights, but they also find pirates after the banned action. So the software watermark itself itself avoids piracy by intimidating the user from copyright infringement, increasing the likelihood of being caught. It should be noted that water marking is not a simple technique. Most other anti-piracy techniques can easily be implemented, although the effectiveness of piracy is often questionable. In addition, many applications are distributed in easy-to-convert formats – see Java bytecode and Microsoft Intermediate Language – so in case of a watermark, the cracker may decompile or scan the source code under disassembler and / or debugger to find and remove the remnants of the technique.
The general idea of software watermarks is very similar to the digital media watermark where a unique identifier embeds into images, sounds, or videos. The method is implemented by introducing minor errors that users do not detect. On the other hand, the watermark can not be used in the software with error-generating techniques as the software depends entirely on error-free operation.
So the software watermark embeds a unique identifier – the watermark – into a program. If the identifier uniquely creates the author of the program, the identifier is a copyright notice. However, if the identifier uniquely identifies the legal buyer of the program, the watermark is a fingerprint. An important aspect of the watermark is the use of a secret key. Using the key, the watermark merges into the program and creates a somewhat different program. However, the problem of identity remains the same: watermark can prove ownership, but it can not show the actual criminal of the banned action. If you want to add such properties to the watermark, the fingerprint will be: in fact, the fingerprint data is a watermark that contains the data of each customer.
Static watermarks are stored in the binary of the program, but dynamic watermarks are created during run time and are stored in program memory. Static watermarks are practiced for a long time, the dynamic version has been introduced recently. The dynamic watermark is built within the dynamically distributed data structures of the program – while executed. However, an aggressor can apply a reversal to find the watermark generation code. You can then get rid of the generating code to remove the watermark from the product. In such cases, the recommended use is the fingerprint, which is a special version of the watermark. Fingerprinting means that each copy of the software has only a watermark, allowing you to identify individual copies of the software product. In other words, with the fingerprinting method, each instance of the software is provided with a watermark, each containing data that points to the client instead of the developer.
Overall, watermarks and fingerprints are very effective in suppressing software piracy. But the result is not perfect, and we recommend additional defense techniques. Combined with other known techniques, the crack of such systems becomes time-consuming so even experienced crackers can choose lighter materials.