Ollydbg 설정 및 간단한 기능 소개
ollydbg 이 글은 1.10 기준입니다.
1. 링크를 통하여 다운로드 받았으면 BOOKMARK.DLL과 Cmdline.dll 을 Plugin 폴더에 넣습니다.
2. 이제 다운 받은 올리디버거를 관리자 권한으로 실행 시킵니다. API의 기능을 볼 수 있도록 도와주는 help 기능이 있는데, 사이트를 통하여 다운로드를 받을 수 있습니다. 파일을 업로드 하려 했는데 용량 초과로 안되네요.
사이트에 들어가시면 아래에 WinApiHelp 0.1 를 받아서 추가하시면 됩니다.
추가하는 방법은 Help에서 Select API help file 을 클릭하시면 아래와 같은 화면이 나오는데 다운 받으신 help 파일을 선택하시면 됩니다.
3. 디버깅 옵션을 하나 변경해야하는데 Options에서 Debugging options를 선택한 뒤 Event 탭에서 Entry point of main module을 선택하시면 됩니다.
나머지는 자신의 입맛에 따라 설정하시길...
4. 마지막은 UDD와 Plugin 폴더를 설정해줘야합니다. 이 폴더들은 올리디버거 폴더 안에 있는 각각의 폴더를 선택하시면 됩니다.
이러면 설정은 완료가 됩니다.
이제 설정도 했으니 올리디버거 기능을 간단히 소개하겠습니다.
덤프 창에는 힙이나 File Map 또는 Text 영역의 값들이 올 수 있고 해당 주소 부분을 16진수로 보여준다.
올리디버거는 기본적으로 파일을 열어서 분석을 할 수 있지만 실행 되어있는 상태에서도 잡아 분석이 가능하다. 그 기능이 Attach 기능인데 file에 attach 를 보면 실행되고 있는 프로세스들을 확인할 수 있다. 그 중에서 자신이 분석하고 싶은 것을 Attach 하여 분석을 하면 된다.
View에는 여러가지를 보는 기능들이 들어 있다. 메모리는 현재 메모리 상태, Call Stack은 어떤 함수가 호출 되어 있는 지를 확인 할 수있다. 각 기능들이 어떤 것인지는 각자가 해보기를 권한다.
Debug에 나오는 키들은 웬만하면 암기하여 사용하는 것을 추천한다. 여기서 특히 자주 사용하는 키는 아래와 같다.
Run |
F9 |
프로그램을 실행 |
Restart |
Ctrl+F2 |
프로그램을 재실행 |
Step into |
F7 |
함수 내부로 추적하여 들어감 |
Step over |
F8 |
함수 내부로 들어가지 않고 다음 코드 실행 |
Animate into |
Ctrl+F7 |
F7과 같지만 자동으로 실행 |
Animate over |
Ctrl+F8 |
F8과 같지만 자동으로 실행 |
Go to |
Ctrl + G |
원하는 주소로 이동 |
Execute till Cursor |
F4 |
cursor 위치까지 실행 |
Set/ Reset BreakPoint |
F2 |
BP 설정/ 해제 |
Preview CALL /JMP / address |
Enter |
커서가 CALL/ JMP 등의 명령어 위치에 있으면 따라 들어감. |
Comment |
; |
코멘트 추가 |
Show the current EIP |
* |
현재 EIP 위치를 다시 보여줌 |
Show the previous Cursor |
- |
직전 커서 위치를 다시 보여줌 |
Label |
: |
원하는 주소에 특정 이름을 붙여줌 |
정도가 된다.이 자주 쓰는 키는 개인적으로 많이 쓰는 키인데 이걸 알아 두면 정말 편리하다
Plugin 에는 Plugin 폴더에 들어있는 플러그를 볼 수 있다. 이 플러그는 아래 사이트에서 다운 받을 수 있다.
상단 메뉴는 다 살펴 보았고 이제 각 영역에서 오른쪽 클릭을 했을 시에 나타나는 메뉴 중 자주 사용하는 것을 살펴보자.
먼저 어셈블리코드 영역에서 오른쪽 클릭 했을 시에 볼 수 있는 메뉴들이다.
Assemble (Space) 는 어셈블리코드를 수정할 수 있다.
Comment (;)는 어셈블리코드 옆에 주석을 달수 있다. 자신만의 주석을 달 수 있으니 자유롭게 해석하여 옆에 달자!
Search for에 나오는 All 시리즈 정말 좋음...
크랙미들은 저기있는 것들만 잘 사용해도 웬만큼 다 풀수 있습니다.
All intermodular calls : 코드에서 사용된 API 목록
All commands : 작성한 코멘트를 찾을 수 있음
All referenced text strings : 텍스트를 볼 수 있음
그리고 스텍 영역에서 오른쪽 클릭을 했을 때 볼 수 있는 화면이다.
ㅇ
Address 는스텍 주소를 ESP, EBP 그리고 기준을 잡을 수 있는 좋은 기능을 가진 메뉴들이 있다.
Show ASCII dump는 아스키 코드 덤프를 추가로 볼 수 있고, Show UNICODE dump는 유니코드 덤프를 추가적으로 볼 수있다.
그리고 Lock stack은 디버깅 하는 도중 스텍이 움직이는 것을 막아줘 자신이 원하는 부분의 스텍을 해제할 때까지 볼 수있다.
여기서 언급을 하지 않았지만 많은 기능들이 있다. 그러니 한번씩 실행 시켜보면서 여러가지 기능을 사용하여 훌륭한 분석가가 되기를...