Hidden Path: Dynamic Software Watermarking Based on Control Flow Obfuscation
Zhe Chen, Chunfu Jia, Donghui Xu · 2017
Software watermarking is a general tool used to combat software piracy by embedding identifying information into a program. Most existing schemes of software watermarking have the weak point that the security only depends on the stealth of the watermark structure. Besides, the watermarking is independent of program in semantic level and can be destroyed via fairly straightforward semantics-preserving code transformations. To mitigate such problems, this paper introduces control flow obfuscation to build a novel dynamic software watermarking framework. By using control flow obfuscation, we skilfully connect several obfuscated branches to construct a hidden execution path. The watermarking is divided to fragments and each fragment is “stored” in each obfuscated branch. As a part of obfuscated branches ,watermarking is closely associated with program internal logic. The security can be reduced to the difficulty of reversing these obfuscated branches, rather than the stealth of watermark structure. We choose neural network as obfuscator; and deploy our watermarking in SPEC-2006int benchmarks. We provide the evaluation in overhead, data-rate, resiliency. Experimental results indicate that the proposed method has enough resilience against common attacks, yet practical in terms of performance.