[x64dbg] xAnalyzer Plugin
Published by Jack2 on January 14th, 2018
0) 개요
- 올리디버거와 같은 디버거에서는 알려진 함수들의 인자값에 대하여 디버깅 과정에서 쉽게 확인 할 수 있음
- x64dbg에서는 이와 같은 기능이 기본으로 제공되지 않음. 이전부터 이런 부분에 대한 갈증(?)이 존재함
- CTF Write[1] 을 보던 중 이러한 갈증을 해결해 줄 수 있는 플러그인[2]를 알게 됨
1) 플러그인 관련 설명 및 주요 기능
- 관련 설명
- 이전에 있던 x86 대상 API 정보를 확인 할 수 있는 플러그인[3]을 기반으로 제작
- xAnalyzer는 [3] 의 기능에 x64 대상 API 정보를 확인 할 수 있는 플러그인으로 즉, x64/x86 모두 지원
- 함수 정의, 인자 및 데이터 타입 뿐만 아니라 추가 설명을 확인 가능 <== 올리디버거 분석 엔진에 가깝게
- 주요 기능
- 확장 함수 호출 분석 (거의 200개 DLL에 대한 13,000개의 API 커버)
- 정의된/일반 함수, 인자, 데이터 타입과 추가적인 디버깅 정보 인식(인지)
- 자동으로 루프(loop)문 탐지
- 사용자 정의 파일
2) 다운로드 및 설치
- 다운로드 경로 : https://github.com/ThunderCls/xAnalyzer/releases/latest
- 2018-01-08 기준 2.4.3 버전 : https://github.com/ThunderCls/xAnalyzer/releases/tag/2.4.3
- 설치
- 위 경로에서 x86/x64 환경에 맞는 다운로드
- .dp32(64) 파일과 apis_def 폴더를 x64dbg의 플러그인 디렉토리에 복사
- 경로 : C:\xdbg\release\x32\plugins
- 플러그인 메뉴에서 xAnalyzer 가 나오는지 확인
3) 사용 예
- 크게 3가지로 구분
- 선택 구간에 대한 분석 (Ctrl + Shift + X)
- 함수 분석 (Ctrl + X)
- 실행 파일 전체에 대한 분석 (Ctrl + Alt + X)
- 적용 전
- 적용 후
4) 설정
- 1) 자동 분석
- 해당 옵션을 활성화하고, 디버거 상에서 엔트리 포인트에 도달하면 실행 코드를 매번 자동 분석
- 올리디버거와 거의 흡사하게 사용 가능
- 2) 확장 분석
- 디버깅 중인 실행파일의 전체 코드 섹션에서 확장 분석을 가능하게 함
- 3) 정의되지 않은 함수 분석
- api definition 파일에 정의되지 않은 API 호출이나 함수에 대한 일반적인 분석과 인자 타입을 출력
- API Definition 파일
- api_def , api_def/headers 폴더에 있는 파일
- 파일이름 : API 함수에 대한 모듈 이름
- 파일이름.h : 데이터 타입을 포함하는 헤더
- .api 확장 : kernel32.api 또는 shell32.api 와 같이사용, 위의 확장과
5) 공식블로그에 올라온 리뷰 [4]
[Refrences]
- https://blog.attify.com/flare-4-writeup-p1/
- https://github.com/ThunderCls/xAnalyzer
- https://github.com/mrfearless/APIInfo-Plugin-x86
- https://x64dbg.com/blog/2016/11/24/xanalyzer-reviewed.html
Copyright 2018. (JAEKI KIM) all rights reserved.
Copyright 2018. (JAEKI KIM) All pictures cannot be copied without permission. |