A Static Java Birthmark Based on Operand Stack Behaviors
Heewan Park, Hyun-il Lim, Seokwoo Choi, Taisook Han · 2008
A software birthmark means the inherent characteristics of a program that can be used to identify the program. By means of comparing the birthmarks of programs, the fact of the software theft can be detected. In this paper, a static Java birthmark is proposed by utilizing a set of behaviors as the characteristics of the Java applications. A behavior denotes a sequence of byte codes which share their operands through the operand stack. We evaluate the proposed birthmark with respect to two properties required for birthmark, i.e., credibility and resilience. The empirical results show that the proposed birthmark is credible and resilient to program transformation. Therefore, the proposed birthmark can be used for identifying the software's originality.