참고 도서 : [리버싱 핵심원리 : 악성 코드 분석가의 리버싱 이야기]
저자 : 이승원
출판사 : 인사이트
참고 사이트 :
- [L4DY_8UG] 올리디버거(Ollydbg) 설치 및 사용법
OllyDbg 정식 사이트 : http://www.ollydbg.de/
Quick start - version 1.10 : http://www.ollydbg.de/quickst.htm
OllyDbg
디버깅 프로그램 중 하나로 디스어셈블리와 디버그가 모두 가능한 툴이다.
- 바이너리 코드 분석을 위한 x86 디버거
- 소스 코드가 없을 때 유용하게 사용됨
- 레지스터를 추적
- 함수, API 호출, Switch 문, 표 (table), constant 그리고 문자열을 인식
- 오브젝트 파일과 라이브러리에서 루틴들의 위치를 찾아줌
- 사용자 친화적인 인터페이스를 갖고 있음
- 가격은 무료지만 셰어웨어 라이선스는 사용자가 등록해야 함
- 어떤 32비트 실행 파일도 실시간으로 디버거가 사용할 수 있는 어셈블리로 편집 가능
- 종종 프로그램의 리버스 엔지니어링에 사용
- 크래커들이 소프트웨어를 소프트웨어 크래킹하기 위한 용도로도 사용
- 프로그래머에게 프로그램이 의도된 대로 실행되는지 보장하기 위해 사용
- 악성코드 분석 목적으로도 사용
설치 및 사용법
- 사용 환경 버전 : 64bit 컴퓨터
사이트에서 OllyDbg 파일을 다운 받아 압축을 해제 시켜 준다.
UDD 파일 : 브레이크 포인트 지점, 백업 파일 등 디버깅 설정 저장 공간
Plugin 파일 : 각종 플러그인 파일들 저장, OllyDbg에 필요한 기능들 저장
후에 필요한 기능들은 “각종 플러그인 다운로드 사이트 : TUTS4YOU (http://www.tuts4you.com)”나 검색을 통해 찾아 넣어주면 된다.
OllyDbg의 환경 설정 파일 ollydbg.ini 안에 다음 값들을 추가시켜 준다.
Show jump direction=1
Show jump path=1
Show jumpfrom path=1
Show path if jump is not taken=1
GUI
[File] - [Open] 이나 F3, 아니면 분석할 파일을 드래그하여 열어준다. 아래는 파일을 오픈해 본 화면이다. 분석할 파일은 랜섬웨어 샘플을 선택하였다.
화면은 총 6개로 나뉘어진다.
(1) 주소 창 : 명령어가 실행 될 주소를 가리키는 창
(2) OP 코드 창 : 기계어를 보여주는 창
(3) 디스어셈블리 창 : 기계어를 어셈블리로 바꿔 놓은 창
=> (1), (2), (3) : Code Window
기본적으로 Disassembly code를 표시하여 각종 comment, label을 보여주며, 코드를 분석하여 loop, jump 위치 등의 정보를 표시
(4) 레지스터 창 : 레지스터의 값을 표시해주는 창
각 주소의 기계어나 어셈블리에 따라 값이 바뀐다.
CPU register 값을 실시간으로 표시하며 특정 register들은 수정도 가능하다.
(5) 메모리 덤프 창 : Address 주소, Hex dump, 각 Hex에 따른 ASCII 코드로 해석된 값을 보여주는 창
프로세스에서 원하는 memory 주소 위치를 Hex와 ASCII/유니코드 값으로 표시하고 수정도 가능하다.
(6) 스택 창 : 스택 주소, 스택 값, Comment 순으로 표시된 창
ESP register가 가리키는 프로세스 stack memory를 실시간으로 표시하고 수정도 가능하다.
댓글