An Evaluation of Static Java Bytecode Watermarking [ Draft Version ]

The rise in the use of the Internet and bytecode languages such as Java bytecode and Microsoft’s Common Intermediate Language have made copying, decompiling and disassembling software easier. The global revenue loss due to software piracy was estimated to be more than $50 billion in 2008. Watermarking is a technique which attempts to protect software by inserting copyright notices or unique indentifiers into software to prove ownership. We evaluate the existing static watermarking systems and algorithms by using them to watermark bytecode files and then applying distortive attacks to each watermarked program by obfuscating and optimising. Our study revealed that a high proportion of watermarks were removed as a result of these transformations both in the commercial and academic watermarking systems that we tested. This is further evidence that static watermarking techniques on their own do not give sufficient protection against software piracy. Keywords-java; bytecode; watermarking; obfuscation; program transformation;

[1]  Christian S. Collberg,et al.  Software watermarking in the frequency domain: Implementation, analysis, and attacks , 2005, J. Comput. Secur..

[2]  Genevieve Arboit,et al.  A Method for Watermarking Java Programs via Opaque Predicates , 2002 .

[3]  P. P. Chakrabarti,et al.  A Method-based Whole-Program Watermarking Scheme For Java Class Files , .

[4]  Shuichi Ichikawa,et al.  The Evaluation of Davidson's Digital Signature Scheme , 2004, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..

[5]  Jean-Jacques Quisquater,et al.  Robust Object Watermarking: Application to Code , 1999, Information Hiding.

[6]  Sebastian Danicic,et al.  An Evaluation of Current Java Bytecode Decompilers , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[7]  Katsuro Inoue,et al.  A practical method for watermarking Java programs , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[8]  Ginger Myles Using software watermarking to discourage piracy , 2004, CROS.

[9]  Christian S. Collberg,et al.  Software Watermarking Through Register Allocation: Implementation, Analysis, and Attacks , 2003, ICISC.

[10]  Krishnaswamy Palsberg,et al.  A Functional Taxonomy for Software Watermarking , 2002 .

[11]  Gang Qu,et al.  Analysis of watermarking techniques for graph coloring problem , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[12]  Christian S. Collberg,et al.  Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection , 2002, IEEE Trans. Software Eng..

[13]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[14]  Christian S. Collberg,et al.  Software watermarking: models and dynamic embeddings , 1999, POPL '99.

[15]  Sam Houston Department of Computer Science , 2010 .

[16]  Joseph K. Kearney,et al.  Software complexity measurement , 1986, CACM.

[17]  Christian S. Collberg,et al.  Software watermarking via opaque predicates: Implementation, analysis, and attacks , 2006, Electron. Commer. Res..

[18]  Christian S. Collberg,et al.  On the Limits of Software Watermarking , 1998 .

[19]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[20]  Ramarathnam Venkatesan,et al.  A Graph Theoretic Approach to Software Watermarking , 2001, Information Hiding.

[21]  Miodrag Potkonjak,et al.  Hiding Signatures in Graph Coloring Solutions , 1999, Information Hiding.