Software watermarking through register allocation: Implementation, analysis, and attacks

Ginger Myles, Christian Collberg

Research output: Chapter in Book/Report/Conference proceedingChapter

38 Scopus citations

Abstract

In this paper we explore the application of the QP water-marking algorithm proposed by G. Qu and M. Potkonjak to software watermarking. The algorithm was originally proposed as a technique for watermarking the graph coloring problem which can be applied to a variety of media such as FPGA designs and software through register allocation. We implemented the algorithm within the SandMark framework, a system that allows the study of watermarking, tamper-proofing, and obfuscation algorithms for Java bytecode. Through the use of this framework we were able to perform an empirical evaluation of the algorithm. In particular we demonstrate that the use of register allocation, while incurring no performance overhead and being stealthy, is in fact vulnerable to attacks such as decompile/recompile. We also demonstrate that the QP algorithm does not allow for accurate watermark recognition without significant modifications.

Original languageEnglish (US)
Title of host publicationLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
EditorsJong In Lim, Dong Hoon Lee
PublisherSpringer-Verlag
Pages274-293
Number of pages20
ISBN (Print)3540213767, 9783540213765
DOIs
StatePublished - Jan 1 2004

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume2971
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Keywords

  • Copyright protection
  • Java bytecode
  • Register allocation
  • Software piracy
  • Software watermarking

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Fingerprint Dive into the research topics of 'Software watermarking through register allocation: Implementation, analysis, and attacks'. Together they form a unique fingerprint.

  • Cite this

    Myles, G., & Collberg, C. (2004). Software watermarking through register allocation: Implementation, analysis, and attacks. In J. I. Lim, & D. H. Lee (Eds.), Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (pp. 274-293). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 2971). Springer-Verlag. https://doi.org/10.1007/978-3-540-24691-6_21