64bit 환경에서 OllyDbg 사용할 수 있는 방법
"리버싱 핵심 원리" 책의 대부분의 예제는 32bit OS 에서 테스트 되었습니다.
("5부 - 64비트 & Windows Kernel 6" 의 실습 예제들은 64bit OS 환경이 필요합니다.)
64bit 환경을 사용하시는 독자님들께서는 아래에 소개되는 내용을 참고하여 실습을 진행하시기 바랍니다.
OllyDbg 1.1 은 기본적으로 64bit 환경을 지원하지 못합니다.
책의 디버깅 실습은 거의 대부분 OllyDbg 를 이용해서 진행됩니다.
그러나 OllyDbg 1.1 은 64bit 환경을 지원하지 못합니다.
<그림 1. Windows 7 64bit 에서 OllyDbg 1.1 실행시 예외 발생>
64bit OS 에서 "2장 Hello World 리버싱" 실습 예제 파일 HelloWorld.exe 를 OllyDbg 1.1 로 실행시키면 <그림 1>과 같이 예외가 발생하면서 ntdll.dll 모듈 영역의 코드에서 멈춰버립니다. (이것은 OllyDbg 1.1 의 버그입니다.)
64bit 환경에서 OllyDbg 사용할 수 있는 2 가지 방법
#1. 64bit OS + OllyDbg 2.0
OllyDbg 2.0 버전에서는 64bit에서 정상 실행 되지 않는 버그가 수정되었습니다.
다운로드 링크 : http://www.ollydbg.de/odbg200.zip
* 참고
최신 버전 OllyDbg 2.01 beta 2 는 실행 과정에 약간의 문제가 있습니다. 문제가 해결될 때까지는 OllyDbg 2.0 을 사용해 주시기 바랍니다.
위 링크에서 파일을 다운받아 압축을 해제한 후 실행하면 <그림 2> 와 같은 화면이 나타납니다.
<그림 2 - Windows 7 64bit 에서 OllyDbg 2.0 으로 HelloWorld.exe 를 띄운 화면>
<그림 2>의 화면을 책의 <그림 2.3> 처럼 보이게 하려면 다음과 같이 작업해 주시면 됩니다.
1) 내부의 CPU 윈도우를 최대화 시킵니다.
2) Code/Register/Dump/Stack Window 의 폰트를 변경합니다.
(각각의 창에서 마우스 우측 메뉴 - Appearance - Font - System fixed font 메뉴 선택)
3) Code Window 의 Highlighting 을 변경합니다. (디스어셈블리 코드의 가독성이 좋아집니다.)
(마우스 우측 메뉴 - Appearance - Highlighting - Jumps and calls 메뉴 선택)
4) OllyDbg 2.0 의 창 크기를 적절히 조절합니다.
OllyDbg 2.0 버전의 GUI 는 1.1 버전과 거의 차이가 없습니다. 이제부터 디버깅 실습을 진행하시면 됩니다.
#2. 64bit OS + OllyDbg 1.1 + "Olly Advanced" PlugIn
OllyDbg 2.0 이 발표된 후에도 OllyDbg 1.1 버전이 꾸준히 사랑받는 이유는 바로 다양한 플러그인(PlugIn) 때문입니다. 특히 안티 디버깅이 적용된 PE 프로텍터를 디버깅 할 때 다양한 플러그인은 유용하게 사용됩니다. (최근에는 OllyDbg 2.x 용 플러그인도 많이 개발되고 있습니다.)
64bit OS 에서도 "Olly Advanced" 플러그인을 적용하면 OllyDbg 1.1 버전을 사용할 수 있습니다.
다운로드 링크 : http://tuts4you.com/request.php?75
* 참고
Olly Advanced 플러그인은 OllyDbg 의 버그 패치, 다양한 안티 디버깅에 대한 방어 기능을 지원합니다. Olly Script 플러그인과 함께 가장 유명하고 사용자가 많은 플러그인 입니다.
Olly Advanced 플러그인 설치 방법은 다음과 같습니다.
1) 다운 받은 Olly Advanced v1.27.rar 파일의 압축을 해제하면 advancedolly.dll 플러그인 파일이 생성됩니다.
2) OllyDbg 1.1 설치 폴더에 advancedolly.dll 파일을 복사합니다.
<그림 3 - advancedolly.dll 파일 복사>
3) Olly Advanced 플러그인의 옵션 메뉴를 선택합니다.
<그림 4 - Plugins - Olly Advanced - Options 메뉴 항목>
4) Olly Advanced 옵션 다이알로그에서 "x64 Compatiblity-mode (single-step)" 항목을 체크합니다.
<그림 5 - x64 Compatiblity-mode (single-step) 항목 체크>
5) 이제 64bit OS 환경에서 OllyDbg 1.1 을 사용할 수 있습니다. HelloWorld.exe 실습 파일을 올려 보시기 바랍니다.
참고로 OllyDbg 의 플러그인들은 보통 자체 버그들이 있어서 디버깅할 때 OllyDbg 가 종료될 때가 있습니다. 그리고 기능을 잘 모르는 플러그인을 많이 설치하면 생각지도 않은 오동작을 할 때가 있기 때문에 주의 하시기 바랍니다.
* 참고
- 책의 실습 예제 파일들은 32bit OS 환경에서 실습 하시는 것을 권장합니다. (5부 실습 예제들은 64bit 환경만 가능)
- 위에 소개된 방법처럼 64bit 환경에서 디버깅 실습을 진행하실 때 책의 내용과 약간 다르게 동작할 수도 있습니다.