Software theft, also known as software piracy, is the act of copying a legitimate application and illegally distributing that software, either free or for profit. The global revenue loss due to software piracy was estimated to be more than $50 billion in 2009. Watermarks can be classified as either static or dynamic. Static watermarks are embedded in the code and/or data of a computer program, whereas dynamic watermarking techniques store a watermark in a program's execution state. In this paper, we present a brief survey of the proposed static watermarking techniques, including a brief explanation of each technique concluding with directions for future work.
The full paper surveys the following:
- Code replacement watermarking
- Code re-ordering watermarking
- Register allocation watermarking
- Static graph watermarking
- Abstract interpretation watermarking
- Opaque predicate watermarking
- Watermarking systems
Presented at the IEEE World Congress on Internet Security 2011.