Dynamic graph-based software fingerprinting

Christian S Collberg, Clark Thomborson, Gregg M. Townsend

Research output: Contribution to journalArticle

40 Citations (Scopus)

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

Fingerprint

Intellectual property
Hardness

Keywords

  • Software piracy
  • Software protection
  • Watermarking

ASJC Scopus subject areas

  • Computer Graphics and Computer-Aided Design
  • Software

Cite this

Dynamic graph-based software fingerprinting. / Collberg, Christian S; Thomborson, Clark; Townsend, Gregg M.

In: ACM Transactions on Programming Languages and Systems, Vol. 29, No. 6, 1286826, 01.10.2007.

Research output: Contribution to journalArticle

@article{2aab2c043e8f4e2f914891276d2045be,
title = "Dynamic graph-based software fingerprinting",
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.",
keywords = "Software piracy, Software protection, Watermarking",
author = "Collberg, {Christian S} and Clark Thomborson and Townsend, {Gregg M.}",
year = "2007",
month = "10",
day = "1",
doi = "10.1145/1286821.1286826",
language = "English (US)",
volume = "29",
journal = "ACM Transactions on Programming Languages and Systems",
issn = "0164-0925",
publisher = "Association for Computing Machinery (ACM)",
number = "6",

}

TY - JOUR

T1 - Dynamic graph-based software fingerprinting

AU - Collberg, Christian S

AU - Thomborson, Clark

AU - Townsend, Gregg M.

PY - 2007/10/1

Y1 - 2007/10/1

N2 - 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.

AB - 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.

KW - Software piracy

KW - Software protection

KW - Watermarking

UR - http://www.scopus.com/inward/record.url?scp=36049034911&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=36049034911&partnerID=8YFLogxK

U2 - 10.1145/1286821.1286826

DO - 10.1145/1286821.1286826

M3 - Article

AN - SCOPUS:36049034911

VL - 29

JO - ACM Transactions on Programming Languages and Systems

JF - ACM Transactions on Programming Languages and Systems

SN - 0164-0925

IS - 6

M1 - 1286826

ER -