Effective Technique for Inlining Function Calls in Code Obfuscation Using Genetic Algorithm

유전 알고리즘을 이용한 코드 난독화에서의 효율적 함수 호출 인라인 기법

  • Kim, Jung-Il (School of Electrical Engineering and Computer Science, Kyungpook National University) ;
  • Lee, Eun-Joo (School of Electrical Engineering and Computer Science, Kyungpook National University)
  • 김정일 (경북대학교 전자전기컴퓨터학부) ;
  • 이은주 (경북대학교 전자전기컴퓨터학부)
  • Published : 2010.06.30

Abstract

코드 난독화 기법 중의 하나인 인라인(Inline)은 코드의 복사를 통하여 함수의 호출 구조를 파괴하여서 코드의 복원과 이해를 어렵게 만든다. 하지만 적절한 전략 없이 인라인 기법을 적용하게 되면, 프로그램 성능이 저하되며 난독화의 결과도 기대 이하일 가능성이 존재한다. 따라서 지나친 성능의 저하를 막으면서 결과적으로 코드의 복원과 이해를 최대한 어렵게 하기 위한 인라인 수행 전략이 필요하다. 이를 위하여 본 논문에서는 정적 함수 호출 그래프를 기반으로 인라인의 적용 여부를 유전 알고리즘을 사용하여 결정하도록 한다. 그리고 인라인 전후의 효용을 보여주기 위하여 정보이론 및 제어 흐름의 복잡도에 기반하여 전체 프로그램의 복잡도를 정의하였다. 마지막으로 해당 기법의 효용을 실험을 통해 보였다.

Keywords