Software Watermarking for Java Program Based on Method Name Encoding

This paper proposes a software watermarking scheme for Java programs that is based on method name encoding. The feature of Java reflection is utilized to obtain the method names in a Java program. Watermark bits are divided into pieces according to the number of the method names. Each piece of the watermark bits is encoded with a method name, which hence achieves the embedding of the watermark. Based on the approach, an experiment system is developed to embed and extract watermark information in a practical Java program. The experimental test and performance analysis show that the proposed method is feasible and has good performances of security and robustness.

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

[2]  Qinghua Zheng,et al.  Software Plagiarism Detection with Birthmarks Based on Dynamic Key Instruction Sequences , 2015, IEEE Transactions on Software Engineering.

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

[4]  Tareek Pattewar,et al.  Software birthmark based theft detection of JavaScript programs using agglomerative clustering and improved frequent subgraph mining , 2014, 2014 International Conference on Advances in Electronics Computers and Communications.

[5]  Siu-Ming Yiu,et al.  Heap Graph Based Software Theft Detection , 2013, IEEE Transactions on Information Forensics and Security.

[6]  Patrick Cousot,et al.  An abstract interpretation-based framework for software watermarking , 2004, POPL.

[7]  H.F. Ahmad,et al.  Semblance based disseminated software watermarking algorithm , 2008, 2008 23rd International Symposium on Computer and Information Sciences.

[8]  Subariah Ibrahim,et al.  Fixed size encoding scheme for software watermarking , 2011, 2011 7th International Conference on Information Assurance and Security (IAS).

[9]  Paolo Falcarin,et al.  Guest Editors' Introduction: Software Protection , 2011, IEEE Software.

[10]  Michael Stepp,et al.  More on graph theoretic software watermarks: Implementation, analysis, and attacks , 2009, Inf. Softw. Technol..

[11]  Michael Stepp,et al.  Dynamic path-based software watermarking , 2004, PLDI '04.

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

[13]  Jeel J. Patel IP-based connection between mobile phones , 2014, 2014 International Conference on Computer Communication and Informatics.

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

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

[16]  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).

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

[18]  J. Chen,et al.  Implementation of Bytecode-based Software Watermarking for Java Programs , 2010 .