가상화 기법으로 난독화된 실행파일에서의 함수 구조 동적 복원Dynamic reconstruction of function structure in virtualization-obfuscated binary executables

Cited 0 time in webofscience Cited 0 time in scopus
  • Hit : 539
  • Download : 0
난독화란 사람이 코드를 쉽게 이해할 수 없도록 코드를 복잡하게 하는 것이다. 난독화는 고유의 알고리즘을 역공학으로부터 보호하려 하거나 소프트웨어 라이센스를 검사하는 코드를 우회하려는 것을 방지하는 데 사용된다. 뿐만 아니라 시그니처 기반의 안티바이러스 소프트웨어를 피하거나 분석자가 세부 정보를 알기 어렵게 하기 위해 악성 코드에도 난독화가 적용된다. 가상화 기반의 난독화는 정적 및 동적 프로그램 분석 모두에 저항하는 기법으로, 원본 코드가 임의의 아키텍처로 된 바이트코드로 대체된다. 바이트코드를 실행하기 위해 실행 파일에 인터프리터가 내장된다. 정적 분석으로는 인터프리터 코드만 발견되고 동적 분석으로는 방대한 양의 바이트코드 실행 과정에 대처해야 한다. 가상화 기반의 난독화가 적용된 실행 파일에서 난독화를 해제하려면 먼저 인터프리터 코드를 발견하는 것이 중요하다. 기존 연구들은 동적 분석으로 인터프리터의 디코드--디스패치 루프를 감지한다. 그러나 최근 인터프리터들은 루프가 아니라 스레디드 구조를 가진다. 본 논문은 기본 블록들을 묶어 함수를 만듦으로써 인터프리터 코드를 찾을 수 있다는 것을 보인다. 동적 제어 흐름 그래프(DCFG)로부터 같은 함수에 속하는 기본 블록들을 반복적으로 병합하고, 실행 경로에서 함수 호출 과정을 발견하는 알고리즘을 제시한다. 함수들이 복원되고 DCFG에서 분리됨에 따라 그래프를 더 쉽게 이해할 수 있다. 함수 호출 과정은 함수 이름을 태그로 붙인 간선 하나로 대체된다. 축약된 그래프는 실행 과정 전체를 요약하여, 분석자가 인터프리터 코드와 라이브러리 함수 호출들을 DCFG에서 쉽게 찾을 수 있도록 해준다. 이 분석 기법을 바이트코드 프로그램과 패킹과 같은 다른 난독화 기법들에도 적용해 보려고 한다.
Advisors
한태숙researcherHan, Tai Sookresearcher
Description
한국과학기술원 :전산학부,
Publisher
한국과학기술원
Issue Date
2015
Identifier
325007
Language
kor
Description

학위논문(석사) - 한국과학기술원 : 전산학부, 2015.8 ,[iv, 39 p. :]

Keywords

바이너리 분석; 동적 분석; 역공학; 난독화; 가상화; Binary analysis; Dynamic analysis; Reverse engineering; Obfuscation; Virtualization

URI
http://hdl.handle.net/10203/206611
Link
http://library.kaist.ac.kr/search/detail/view.do?bibCtrlNo=628708&flag=dissertation
Appears in Collection
CS-Theses_Master(석사논문)
Files in This Item
There are no files associated with this item.

qr_code

  • mendeley

    citeulike


rss_1.0 rss_2.0 atom_1.0