Software watermarking via opaque predicates: Implementation, analysis, and attacks

Ginger Myles, Christian Collberg

Research output: Contribution to journalArticlepeer-review

40 Scopus citations


Within the software industry software piracy is a great concern. In this article we address this issue through a prevention technique called software watermarking. Depending on how a software watermark is applied it can be used to discourage piracy; as proof of authorship or purchase; or to track the source of the illegal redistribution. In particular we analyze an algorithm originally proposed by Geneviève Arboit in A Method for Watermarking Java Programs via Opaque Predicates. This watermarking technique embeds the watermark by adding opaque predicates to the application. We have found that the Arboit technique does withstand some forms of attack and has a respectable data-rate. However, it is susceptible to a variety of distortive attacks. One unanswered question in the area of software watermarking is whether dynamic algorithms are inherently more resilient to attacks than static algorithms. We have implemented and empirically evaluated both static and dynamic versions within the SandMark framework.

Original languageEnglish (US)
Pages (from-to)155-171
Number of pages17
JournalElectronic Commerce Research
Issue number2
StatePublished - Apr 2006


  • Copyright protection
  • Opaque predicate
  • Software piracy
  • Software watermarking

ASJC Scopus subject areas

  • Economics, Econometrics and Finance (miscellaneous)
  • Human-Computer Interaction


Dive into the research topics of 'Software watermarking via opaque predicates: Implementation, analysis, and attacks'. Together they form a unique fingerprint.

Cite this