DOI QR코드

DOI QR Code

An Effective Method for Comparing Control Flow Graphs through Edge Extension

에지 확장을 통한 제어 흐름 그래프의 효과적인 비교 방법

  • 임현일 (경남대학교 컴퓨터공학과)
  • Received : 2012.12.18
  • Accepted : 2013.07.18
  • Published : 2013.08.31

Abstract

In this paper, we present an effective method for comparing control flow graphs which represent static structures of binary programs. To compare control flow graphs, we measure similarities by comparing instructions and syntactic information contained in basic blocks. In addition, we also consider similarities of edges, which represent control flows between basic blocks, by edge extension. Based on the comparison results of basic blocks and edges, we match most similar basic blocks in two control flow graphs, and then calculate the similarity between control flow graphs. We evaluate the proposed edge extension method in real world Java programs with respect to structural similarities of their control flow graphs. To compare the performance of the proposed method, we also performed experiments with a previous structural comparison for control flow graphs. From the experimental results, the proposed method is evaluated to have enough distinction ability between control flow graphs which have different structural characteristics. Although the method takes more time than previous method, it is evaluated to be more resilient than previous method in comparing control flow graphs which have similar structural characteristics. Control flow graph can be effectively used in program analysis and understanding, and the proposed method is expected to be applied to various areas, such as code optimization, detection of similar code, and detection of code plagiarism.

본 논문에서는 바이너리 프로그램의 정적인 구조를 표현하는 제어 흐름 그래프를 비교하는 방법을 제안한다. 제어 흐름 그래프를 비교하기 위해서 기본 블록에 포함된 프로그램의 명령어 및 구문 정보를 비교한 후 기본 블록 사이의 유사한 정도를 측정한다. 또한, 에지 확장을 통해 기본 블록들 간의 제어 흐름을 표현하는 그래프 에지의 유사성을 함께 반영한다. 각 기본 블록 사이의 유사도 결과를 기반으로 기본 블록을 서로 매칭하고, 기본 블록 사이의 매칭 정보를 이용해서 전체 제어 흐름 그래프의 유사도를 측정한다. 본 논문에서 제안한 방법은 자바 프로그램으로부터 추출한 제어 흐름 그래프를 대상으로 제어 흐름 구조의 유사성에 따라 두 가지 기준으로 실험을 수행하였다. 그리고, 성능을 평가하기 위해서 기존의 구조적 비교 방법을 함께 실험하였다. 실험 결과로부터 에지 확장 방법은 서로 다른 프로그램에 대해 충분한 변별력을 가지고 있음을 확인할 수 있다. 프로그램 비교에 좀 더 많은 시간이 소요되지만, 구조가 유사한 프로그램에 대한 매칭 능력에서 기존의 구조적 비교 방법에 비해 우수한 결과를 보였다. 제어 흐름 그래프는 프로그램의 분석에 다양하게 활용될 수 있으며, 제어 흐름 그래프의 비교 방법은 프로그램의 유사성 비교를 통한 코드의 최적화, 유사 코드 검출, 코드의 도용 탐지 등 다양한 분야에서 응용될 수 있을 것이라 기대된다.

Keywords

References

  1. Renhard Wilhelm and Dieter Maurer, Compiler Design, Addison-Wesley, 1995.
  2. Ruben Smelik, Arend Rensink, and Harmen Kastenberg, Specification and Construction of Control Flow Semantics, In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, pp.65-72, Sept., 2006.
  3. Danilo Bruschi, Lorenzo Martignoni, and Mattia Monga, Detecting Self-Mutating Malware Using Control-Flow Graph Matching, In Proceedings of Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA 2006), LNCS 4064, pp.129-143, 2006.
  4. Guillaume Bonfante, Matthieu Kaczmarek, and Jean-Yves Marion, Control Flow to Detect Malware, Inter-Regional Workshop on Rigorous System Development and Analysis 2007.
  5. Guillaume Bonfante, Matthieu Kaczmarek, and Jean-Yves Marion, Control Flow Graphs as Malware Signatures, International Workshop on the Theory of Computer Viruses, 2007.
  6. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
  7. John W. Raymond1 and Peter Willett, Maximum common subgraph isomorphism algorithms for the matching of chemical structures, Journal of Computer-Aided Molecular Design, 16: pp.521-533, 2002. https://doi.org/10.1023/A:1021271615909
  8. Faisal N. Abu-Khzam, Nagiza F. Samatova, Mohamad A. Rizk, and Michael A. Langston, The Maximum Common Subgraph Problem: Faster Solutions via Vertex Cover, In IEEE/ACS International Conference on Computer Systems and Applications (AICCSA 2007), pp.367-373, May, 2007.
  9. Zhiping Zeng, Anthony K. H. Tung, Jianyong Wang, Jianhua Feng, and Lizhu Zhou, Comparing Stars: On Approximating Graph Edit Distance, International Conference on Very Large Data Bases (VLDB 2009), 2009.
  10. Laura Zager, Graph similarity and matching, MS Thesis, Dept of EECS, MIT, 2005.
  11. Python Programming Language, http://www.python.org/
  12. Halvar Flake, Structural Comparison of Executable Objects, In Proceedings of the IEEE Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA), pp.161-173, 2004
  13. Thomas Dullien and Rolf Rolles, Graph-based comparison of executable objects, University of Technology in Florida, 2005.
  14. Smokescreen Java Obfuscator, http://www.leesw.com/smokescreen/
  15. Zelix KlassMaster, http://www.zelix.com/klassmaster/