Dynamic graph-based software fingerprinting

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

Research output: Contribution to journalArticlepeer-review

51 Scopus citations

Abstract

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
Volume29
Issue number6
DOIs
StatePublished - Oct 1 2007

Keywords

  • Software piracy
  • Software protection
  • Watermarking

ASJC Scopus subject areas

  • Software

Fingerprint

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

Cite this