IEEE Access (Jan 2018)
Exception Handling-Based Dynamic Software Watermarking
Abstract
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.
Keywords