Dynamic Path-Based Software Watermarking
C. Collberg, E. Carter, S. Debray, A. Huntwork, C. Linn, and M. Stepp
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Abstract
Software watermarks --- bitstrings encoding some sort of identifying
information that are embedded into executable programs --- are an important
tool against software piracy. Most existing proposals for software
watermarking have the shortcoming that they can be destroyed via fairly
straightforward semantics-preserving code transformations. This paper
introduces path-based
watermarking, a new approach to software watermarking based on the dynamic
branching behavior of programs. We show how error-correcting and
tamper-proofing techniques can be used to make path-based watermarks
resilient against a wide variety of attacks. Experimental results, using
both Java bytecode
and IA-32 native code, indicate that even relatively large watermarks
can be embedded into programs at modest cost.