• 제목/요약/키워드: OEP obfuscation

검색결과 2건 처리시간 0.016초

트램폴린 코드 기반의 난독화 기법을 위한 역난독화 시스템 (De-Obfuscated Scheme for Obfuscation Techniques Based on Trampoline Code)

  • 김민호;이정현;조해현
    • 정보보호학회논문지
    • /
    • 제33권6호
    • /
    • pp.1043-1053
    • /
    • 2023
  • 악성코드 분석가들은 다양한 경로로 배포되는 악성코드를 분석하고 대응하기 위해 많은 노력을 기울이고 있다. 그러나 악성코드 개발자들은 분석을 회피하기 위해 다양한 시도를 하고 있다. 대표적인 방법으로는 패킹과 난독화 기법 등이 있다. 기존 연구들은 일반적인 프로그램 언패킹 방법을 제안했으나, 최근의 패커들이 사용하는 OEP 난독화나 API 난독화 기법 등에 대한 대응이 부족하여, 언패킹 과정에서 실패하는 경우가 있다. 본 논문에서는 다양한 패커들이 사용하는 OEP 및 API 난독화 기법을 분석하고, 이를 자동으로 역난독화하는 시스템을 제안한다. 제안 시스템은 패킹된 프로그램의 메모리를 덤프하여 OEP와 API 난독화에 사용되는 트램폴린 코드를 탐지한다. 이후 트램폴린 코드의 패턴을 분석하여 난독화된 정보를 탐지하고, 언패킹된 프로그램으로 재구성한다. 실험 결과, 제안 시스템이 다양한 패커에 의해 OEP와 API 난독화 기법이 적용된 프로그램을 효과적으로 역난독화할 수 있음을 확인하였다.

PinDemonium 기반 Original Entry Point 탐지 방법 개선 (Improved Original Entry Point Detection Method Based on PinDemonium)

  • 김경민;박용수
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제7권6호
    • /
    • pp.155-164
    • /
    • 2018
  • 많은 악성프로그램은 역공학을 막기 위해 다양한 상용 패커를 사용해 압축 혹은 암호화를 했기 때문에 악성코드 분석가는 압축해제 혹은 복 호화를 먼저 수행해야 한다. OEP(Original Entry Point)는 암호화되거나 압축되어 있는 실행파일을 다시 원본 바이너리 상태로 되돌린 후 실행된 첫 번째 명령어의 주소이다. 여러 언패커는 OEP가 나타나기 전까지 패킹된 파일을 실행하며 주소를 기록한다. 그리고 기록된 주소들 중에 OEP를 찾는다. 그러나 일부 언패커에서 제공하는 OEP 후보들은 비교적 큰 OEP 후보 집합을 제공하거나 후보들 중에 OEP가 없는 경우가 있다. 이에 악성코드 분석가들은 더 적은 OEP 후보 집합을 제공하는 도구가 필요한 실정이다. 본 논문에서는 PinDemonium이라 불리는 언패커에 두 가지 OEP 탐지방법을 추가하여 더 적은 OEP 후보 집합을 제공하는 도구를 만들었다. 첫 번째 방법은 패킹된 프로그램이 완전히 원본 바이너리상태로 되돌아 간 후에는 원프로그램 함수 호출과 동일하다는 것을 활용한 OEP 탐지방법이다. C/C++ 언어로 작성된 프로그램은 바이너리 코드로 언어를 변환하는 컴파일 과정을 거친다. 컴파일 과정을 거친 프로그램에는 특정 시스템 함수들이 추가된다. 이 시스템 함수들은 컴파일러 별로 다르다. 컴파일러 별로 사용되는 시스템 함수를 조사한 후, 패킹된 프로그램에서 호출되는 시스템 함수와 패턴매칭하여 언패킹 작업이 끝났는지 탐지하는 방법이다. 두 번째 방법은 패킹된 프로그램이 완전히 원본 바이너리 상태로 돌아간 후 시스템함수에서 사용되는 매개 변수가 원프로그램과 동일하다는 것을 활용한 OEP 탐지방법이다. 시스템함수에서 사용되는 매개변수의 값을 이용해 OEP를 찾는 방법이다. 본 연구는 16종의 상용 패커로 압축된 샘플 프로그램을 대상으로 OEP 탐지 실험을 했다. 본 연구에선 안티 디버깅 기법으로 프로그램을 실행하지 못하는 경우인 2종을 제외하고 PinDemonium 대비 평균 40% 이상 OEP후보를 줄일 수 있었다.