More on graph theoretic software watermarks: Implementation, analysis, and attacks

Christian Collberg, Andrew Huntwork, Edward Carter, Gregg Townsend, Michael Stepp

Research output: Contribution to journalArticlepeer-review

41 Scopus citations


This paper presents an implementation of the watermarking method proposed by Venkatesan et al. in their paper [R. Venkatesan, V. Vazirani, S. Sinha, A graph theoretic approach to software watermarking, in: Fourth International Information Hiding Workshop, Pittsburgh, PA, 2001]. An executable program is marked by the addition of code for which the topology of the control-flow graph encodes a watermark. We discuss issues that were identified during construction of an actual implementation that operates on Java bytecode. We present two algorithms for splitting a watermark number into a redundant set of pieces and an algorithm for turning a watermark number into a control-flow graph. We measure the size and time overhead of watermarking, and evaluate the algorithm against a variety of attacks.

Original languageEnglish (US)
Pages (from-to)56-67
Number of pages12
JournalInformation and Software Technology
Issue number1
StatePublished - Jan 2009


  • Software piracy protection
  • Software protection
  • Software watermarking
  • Surreptitious software

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Computer Science Applications


Dive into the research topics of 'More on graph theoretic software watermarks: Implementation, analysis, and attacks'. Together they form a unique fingerprint.

Cite this