A Java Birthmark based on Control Flow Graph Matching

제어 흐름 그래프 매칭 기반 자바 버스마크

  • Published : 2009.11.15

Abstract

A software birthmark is inherent characteristics that can be used to identify a program. In this paper, we propose a new Java birthmark based on control flow graph (CFG) matching. The CFG matching consists of node matching and edge matching. To get similarities of nodes and edges of two CFGs, we apply a sequence alignment algorithm and a shortest path algorithm, respectively. To evaluate the proposed birthmark, we perform experiments on Java programs that implement various algorithms. In the experiments, the proposed birthmark shows not only high credibility and resilience but also fast runtime performance.

소프트웨어 버스마크는 프로그램을 식별하는데 사용될 수 있는 내재된 특징이다. 본 논문에서는 제어 흐름 그래프 매칭 기반의 새로운 자바 버스마크를 제안한다. 제어 흐름 그래프 매칭은 노드 매칭과 에지 매칭으로 이루어진다. 두 제어 흐름 그래프의 노드 유사도와 에지 유사토를 구하기 위해서 서열 정렬 알고리즘과 최단거리 알고리즘을 각각 사용하였다. 제안된 버스마크를 평가하기 위해서 다양한 알고리즘을 구현한 자바 프로그램을 대상으로 실험을 하였다. 제안된 버스마크는 이 실험에서 높은 신뢰도와 강인도 뿐만 아니라 빠른 실행 성능을 보여주었다.

Keywords

References

  1. Prechelt, L., Malpohl, G. and Philippsen, M. “Find-ing plagiarisms among a set of programs with jPlag,” Journal of Universal Computer Science, vol.8, no.11, pp.1016-1038, 2002 https://doi.org/10.3217/jucs-008-11-1016
  2. Tamada, H., Nakamura, M., Monderi, A., Mat-sumoto, K., “Java birthmark Detecting the soft-ware theft,” IEICE Transactions on Information and Systems, E88-D, 9, pp.2148-2158, Sept. 2005 https://doi.org/10.1093/ietisy/e88-d.9.2148
  3. Ginger Myles and Christian Collberg, “k-gram Based Software Birthmarks,” In Proceeding of the 2005 ACM Symposium on Applied Computing, pp.314-318. Santa Fe, New Mexico, USA, 2005 https://doi.org/10.1145/1066677.1066753
  4. Heewan Park, Seokwoo Choi, Hyun-il Lim, and Taisook Han. “Detecting Code Theft via a Static Instruction Trace Birthmark for Java Methods,” The 6th IEEE International Conference on Indu-strial Informatics (INDIN), July 2008 https://doi.org/10.1109/INDIN.2008.4618162
  5. Laura Zager, “Graph similarity and matching,” MS Thesis, EECS, MIT, 2005
  6. Saul Needleman and Christian Wunsch, “A general method applicable to the search for similarities in the amino acid sequence of two proteins,” Journal of Molecular Biology, 48(3):443-453, 1970 https://doi.org/10.1016/0022-2836(70)90057-4
  7. Temple Smith and Michael Waterman. “Identifica-tion of Common Molecular Subsequences,” Journal of Molecular Biology, 147: 195-197, 1981 https://doi.org/10.1016/0022-2836(81)90087-5
  8. Brudno M, Malde S. Poliakov A, Do CB, Couronne O, Dubchak I, Batzoglou S., “Glocal alignment: finding rearrangements during alignment,” Bioin-formatics, vol.19 Suppl.1:i54-62, 2003 https://doi.org/10.1093/bioinformatics/btg1005
  9. Mark Allen Weiss, “Data Structures and Algo-rithm Analysis in Java,” Addison-Wesley, http://users.cs.fiu.ed/~weiss/dsaajava/code/