IEICE Transactions on Information and Systems · 2008 · 32 citations · 13 references
ComputingComputer EngineeringComputer ScienceApplication SecurityComputer SecurityProgramming LanguagesSoftware Fault ToleranceSoftware Vulnerability DiscoveryProgram TransformationSource Code Vulnerability Detection
A software birthmark means the inherent characteristics of a program that can be used to identify the program. A comparison of such birthmarks facilitates the detection of software theft. In this paper, we propose a static Java birthmark based on a set of stack patterns, which reflect the characteristic of Java applications. A stack pattern denotes a sequence of bytecodes that share their operands through the operand stack. A weight scheme is used to balance the influence of each bytecode in a comparison of the birthmarks. We evaluate the proposed birthmark with respect to two properties required for a birthmark: credibility and resilience. The empirical results show that the proposed birthmark is highly credible and resilient to program transformation. We also compare the proposed birthmark with existing birthmarks, such as that of Tamada et al. and the k-gram birthmark. The experimental results show that the proposed birthmark is more stable than the birthmarks in terms of resilience to program transformation. Thus, the proposed birthmark can provide more reliable evidence of software theft when the software is modified by someone other than author.
13
Adhi Harmoko S, M.Komp, Joseph Marie Jacquard et al. · 2005 · 18.4K citations
The Hungarian method for the assignment problem
Harold W. Kuhn · Naval Research Logistics Quarterly · 1955 · 12.6K citations
Introduction to algorithms [2nd ed.]
Thomas H. Cormen · 2001 · 1.9K citations
On the resemblance and containment of documents
Arndt Bröder · 2002 · 1.7K citations