Dynamic graph-based software fingerprinting

Christian S. Collberg, Clark Thomborson, Gregg M. Townsend

Research output: Contribution to journalArticlepeer-review

51 Scopus citations


Fingerprinting embeds a secret message into a cover message. In media fingerprinting, the secret is usually a copyright notice and the cover a digital image. Fingerprinting an object discourages intellectual property theft, or when such theft has occurred, allows us to prove ownership. The Software Fingerprinting problem can be described as follows. Embed a structure W into a program P such that: W can be reliably located and extracted from P even after P has been subjected to code transformations such as translation, optimization and obfuscation; W is stealthy; W has a high data rate; embedding W into P does not adversely affect the performance of P; and W has a mathematical property that allows us to argue that its presence in P is the result of deliberate actions. In this article, we describe a software fingerprinting technique in which a dynamic graph fingerprint is stored in the execution state of a program. Because of the hardness of pointer alias analysis such fingerprints are difficult to attack automatically.

Original languageEnglish (US)
Article number1286826
JournalACM Transactions on Programming Languages and Systems
Issue number6
StatePublished - Oct 1 2007


  • Software piracy
  • Software protection
  • Watermarking

ASJC Scopus subject areas

  • Software


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

Cite this