The Computer Journal Advance Access published online on November 5, 2009
The Computer Journal, doi:10.1093/comjnl/bxp095
Detecting Common Modules in Java Packages Based on Static Object Trace Birthmark
Department of Computer Science, KAIST, Gwahangno 335, Yuseong-gu, Daejeon 305-701, Republic of Korea
* Corresponding author: hwpark{at}pllab.kaist.ac.kr
Received 25 April 2009; revised 29 July 2009
A software birthmark means inherent characteristics that can be used to identify a program. In this paper, we propose a birthmark technique based on object traces of Java programs. Java is an object-oriented programming language that provides various predefined class libraries that help programmers to produce software easily. In order to utilize Java class libraries, we have to use Java object instructions. The Java object instructions are hard to replace or remove, and so a set of sequences of object instructions is a proper candidate to represent inherent characteristics of a program. We propose a new birthmark using the sequences of object instructions. We evaluate the proposed birthmark with open source programs and compare it with previous static birthmarks. Experiments show that the detection capability of our birthmark is much higher than that of other static birthmarks despite obfuscations by Smokescreen and ZKM.
Key Words: software birthmark software theft detection GPL violation Java bytecode analysis