올리디버거 (Ollydbg) 설치 및 사용법 HUJ
<사용 환경버전>
64bit 컴퓨터
<올리디버거 란?>
디버깅 프로그램중 하나이며, 디스어셈블리와 디버그가 모두 가능한 툴이라 리버싱에 기본적으로 사용됩니다.
지금 사용할 버전 110은 32bit 컴퓨터에 안정되어있습니다~
<다운로드 & 설치>
http://www.ollydbg.de/ 에서 64bit 컴퓨터는 201버전을 다운받아도 되지만,
플러그인을 따로 설치 해야되므로, 첨부된 파일을 저장하여 풀어 사용하는것이 좋습니다.
(기본설정되어있음.)
각종 플러그인 다운로드 사이트 : TUTS4YOU (http://www.tuts4you.com)
<환경설정, 기본설정>
-->저 파일을 다운받았을시, 이 부분은 무시하셔도 좋지만, 설정안된 부분이 있을 수 있으니 확인바랍니다.
-UDD
-Plugin 파일이 생성되어있습니다. (없다면 파일을 생성해주세요)
UDD 파일에는 브레이크 포인트 지점, 백업파일 등 디버깅 설정 저장 공간
Plugin 파일에는 각종 플러그인 파일들 저장
쉽게말해, 정리해서 보기좋고 경로를 쉽게 설정하기 위한 기본설정인 것입니다.
혹시 win32.hlp 파일이 없다면, http://www.tuts4you.com/download.php?view.258
에서 다운로드 하시면 됩니다.
(없어도 무방하지만, 나중에 API 찾을때 유용합니다.)
Plugin 파일에 각종 .dll 파일을 옮겨줍니다.
이제 OLLYDBG 을 실행해봅시다.
64bit 컴퓨터로 실행할경우, 노란주의 표시가 뜨는데, 그냥 확인을 누르셔도 되고,
실행할때 권리자 권한으로 실행해주셔도 됩니다.
아까, UDD와 Plugin 파일을 생성했으니 프로그램에 설정을 해줘야됩니다.
[Options - Appearance - Directories] 으로 들어가서 UDD와 Plugin path 경로를 아까 UDD와 Plugin 파일로 경로를 바꿔주시면 됩니다.
다음, 디버거로 열었을 때 시작할 위치를 설정해줍니다.
[Alt+O] or [Options - Debugging options - Events] 에서 [Entry point of main module] 을 체크해주시면 됩니다.
그다음, jump 하는부분에 화살표를 만들어주는 설정을 해줍니다. 저기 ollydbg 구성설정 파일을 열어줍니다.
밑 사진 처럼, 저곳에 다음을 입력해줍니다. 복붙 복붙ㅋㅋ
Show jump direction=1
Show jump path=1
Show jumpfrom path=1
Show path if jump is not taken=1
다음과 같이 jump부분에서 화살표가 생긴것을 보실 수 있습니다.
여기까지 환경설정은 끝났고,,
<사용방법>
[File - Open] 이나 F3, 아니면 open할 파일을 드래그해서 열어봅니다.
1. 주소 창 : 명령어가 실행될 주소를 가르키는 창
2. OP코드 창 : 기계어를 보여주는 창
3. 디스어셈블리 창 : 기계어를 어셈블리로 바꿔놓은 창
4. 레지스터 창 : 레지스터의 값을 표시해주는 창
(각 주소의 기계어나 어셈블리에 따라 값이 바뀐다.)
5. 메모리 덤프 창 : Address 주소, Hex dump, 각 Hex에 따른 ASCII코드로 해석된 창을 보여줌
6. 스택 창 : 스택 주소, 스택 값, comment 순으로 표시된 창
<기본 어셈블리어 간단한 설명>
PUSH : 스택에 값을 넣는 명령어.
POP : 스택에 값을 빼는 명령어.
INC (increase), DEC(decrease) : 증가, 감소 명령어.
ADD, SUB, MUL, DIY : 사칙연산 명령어.
OR, AND, XOR : 논리연산 명령어.
예) XOR EAX : 값을 0으로 초기화 시키는 명령어.
CMP, TEST : CMP는 빼서 비교한다 (값이 변경됨) TEST는 값을 변경하지 않고 비교함. (둘다 값이 같을때 ZF는 1, 다를경우 0)
CALL : 함수 호출 명령어.
RETN : 함수 리턴 명령어. 모두 반환되는 것이 아니라, LEAYE 명령어로 함수에 사용된 스택 값을 보내준다.
JMP 는 http://www.unixwiz.net/techtips/x86-jumps.html/ 참조.
<단축키>
Run (F9) : 프로그램을 실행.
Break Pint (F2) : Break Point 설정/해제 (Run (F9)으로 프로그램을 실행할때 이 break point까지 실행된다.)
Step into (F7) : 한줄씩 실행되면서, CALL에서 프로그램 내부 함수 로 들어가게 됨.
Step over (F8) : 한줄씩 실행되면서, CALL에서 코드 함수로 들어가지않고 진행됨.
Execute till return (Ctrl+F9) : RETN 명령어가 나올때까지 실행함.
그 외의 단축키 : http://www.ollydbg.de/quickst.htm 참조
포스팅 끝><
'Reversing' 카테고리의 다른 글
Reversing Microsoft Visual C++ <클래스, 메소드 및 RTTI> 정리 (0) | 2014.09.30 |
---|---|
Hello_8UG.exe 디버깅 하기!! (1) | 2014.09.24 |
Helloworld.exe 올리디버그로 어셈코드를 분석해보기! (1) | 2014.09.24 |