Dynamic path-based software watermarking

C. Collberg, E. Carter, S. Debray, A. Huntwork, J. Kacecioglu, C. Linn, M. Stepp

Research output: Contribution to journalArticlepeer-review

50 Scopus citations


Software watermarking is a tool used to combat software piracy by embedding identifying information into a program. Most existing proposals for software watermarking have the shortcoming that the mark can be destroyed via fairly straightforward semantics-preserving code transformations. This paper introduces path-based watermarking, a new approach to software watermarking based on the dynamic branching behavior of programs. The advantage of this technique is that error-correcting and tamper-proofing techniques can be used to make path-based watermarks resilient against a wide variety of attacks. Experimental results, using both Java bytecode and IA-32 native code, indicate that even relatively large watermarks can be embedded into programs at modest cost.

Original languageEnglish (US)
Pages (from-to)107-118
Number of pages12
JournalSIGPLAN Notices (ACM Special Interest Group on Programming Languages)
Issue number6
StatePublished - Jun 2004


  • Software piracy
  • Software protection
  • Watermarking

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design


Dive into the research topics of 'Dynamic path-based software watermarking'. Together they form a unique fingerprint.

Cite this