Exception Handling-Based Dynamic Software Watermarking

Existing algorithms experience difficulty resisting additive and subtractive attacks because the embedded watermarks are independent of the carrier programs. A dynamic software watermarking algorithm based on exception handling is proposed in this paper. The algorithm considers the fact that exception handling, which is difficult to remove, commonly exists in the programs to ensure the normal program operation. First, an exception type table is constructed, and the binary watermark to be embedded is mapped to a sequence of exception types by scrambling encoding. Second, corresponding trigger conditions and exception handlers are constructed, and watermark embeddable points are acquired in execution paths under secret inputs. Finally, the code segment of the constructed trigger conditions and exception handlers are inserted into the program with several meticulously designed identifiers. For watermark extraction, the triggered exception types can be obtained with the identifiers by executing the watermarked executable program under secret inputs. The mapping relationship between the exception type and watermark is utilized to decode the binary watermark. The algorithm analysis and experimental results show that the proposed algorithm can embed a watermark in the source code and extract it in an executable program. The algorithm demonstrates good performance against additive and subtractive attacks.

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

[2]  Fenlin Liu,et al.  A Chaos-Based Robust Software Watermarking , 2006, ISPEC.

[3]  Kai Chen,et al.  Droidmarking: resilient software watermarking for impeding android application repackaging , 2014, ASE.

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

[5]  Armand Navabi,et al.  The evaluation of two software watermarking algorithms , 2005, Softw. Pract. Exp..

[6]  Antti Ylä-Jääski,et al.  A Buffer Overflow Based Algorithm to Conceal Software Watermarking Trigger Behavior , 2014, IEICE Trans. Inf. Syst..

[7]  Fei-Yue Wang,et al.  A Survey of Software Watermarking , 2005, ISI.

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

[9]  Weixu Chen,et al.  Software Watermarking for Java Program Based on Method Name Encoding , 2017, AISI.

[10]  Stavros D. Nikolopoulos,et al.  An Embedding Graph-based Model for Software Watermarking , 2012, 2012 Eighth International Conference on Intelligent Information Hiding and Multimedia Signal Processing.

[11]  Debin Gao,et al.  Software Watermarking using Return-Oriented Programming , 2015, AsiaCCS.

[12]  Jianfeng Chen,et al.  An Improved Software Watermarking Scheme Based on PPCT Encoding , 2016, 2016 9th International Symposium on Computational Intelligence and Design (ISCID).

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

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

[15]  Keiichi Kaneko,et al.  Two New Algorithms for Software Watermarking by Register Allocation and their Empirical Evaluation , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

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

[17]  Neil J. Hurley,et al.  Dither Modulation Watermarking of Dynamic Memory Traces , 2005, Information Hiding.