"리버싱 핵심 원리" 책의 대부분의 예제는 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 버전을 사용할 수 있습니다. 


Olly Advanced v1.27.rar


다운로드 링크 : 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 환경에서 디버깅 실습을 진행하실 때 책의 내용과 약간 다르게 동작할 수도 있습니다.



저작자 표시 비영리 변경 금지
신고
  1. 감염오리 2012.10.11 15:53 신고 댓글주소 | 수정 | 삭제 | 댓글

    오옷 조흔 정보군요!

  2. jongmin 2012.10.11 22:03 신고 댓글주소 | 수정 | 삭제 | 댓글

    46~47페이지 올디 ini 설정파일 올려놓으신다고
    써있었는데 어디에있나요~ 'ㅁ'?

    • reversecore 2012.10.11 22:21 신고 댓글주소 | 수정 | 삭제

      안녕하세요.
      소스코드.zip 파일의 압축을 해제하시면 아래 경로에 있습니다.

      01_기초_리버싱\\02_Hello_World!_리버싱\\etc\\ollydbg.ini

      udd 와 plugin 폴더 세팅은 다시 해주셔야 할 겁니다.
      OllyDbg 옵션 메뉴에서 하셔도 되고, 간편하게 ollydbg.ini 파일의 'UDD path' 항목과 'Plugin path' 항목을 직접 편집하셔도 됩니다.

      분석가들은 자신만의 OllyDbg 환경을 가지고 있습니다. 분석가마다 전부 틀리죠. jongmin님 께서도 점차 자신만의 환경을 만들어 보시기 바랍니다. ^^~

      감사합니다.

  3. 개빨라 2012.10.26 09:33 신고 댓글주소 | 수정 | 삭제 | 댓글

    1장에 helloworld.exe 를 윈도우7+올리디버거 1.1 + 플러그인 으로 열었더니


    unable to open or read excutable file 'c\program files(x86)\nvidia corporation\coprocmanager\_etoured.dll'

    이런 에러가 뜨네요 무시해도 되는 에러일까요??

    • reversecore 2012.10.26 20:46 신고 댓글주소 | 수정 | 삭제

      안녕하세요.

      Win 7 (64bit) 를 사용하시는군요.

      일단 OllyDbg 와는 관계 없는 에러입니다. nvidia 모듈에 뭔가 문제가 있는 것 같습니다.

      감사합니다.

  4. 김윤우 2012.11.01 05:44 신고 댓글주소 | 수정 | 삭제 | 댓글

    저기 혹시 저좀 도와주실수있으신가요..?...
    크랙할 프로그램이 있는데 2008년에 만들어진건데 아무것도 모르는상태라 어느정도 성공하고
    앞으로 못나가겠어요...
    오래된거라 정말 쉬울것 같은데 저는 도저히 모르겠네요...ㅠㅠ
    저랑 같이 좀 해주시면 안될까요.. 부탁드립니다....

  5. HAVU 2012.12.18 00:47 신고 댓글주소 | 수정 | 삭제 | 댓글

    아무래도 이 내용대로 하기엔 약간 부족한 점이 없지 않아 있을 것 같네요ㅠ
    64bit 레지스터 값을 볼 수가 없어서ㅠㅠ
    아, 그러고 보니 올리디버거 개발자가 64bit 버전을 따로 개발한다고 한 것 같네요.
    빨리 만들어지길ㅠ

    • reversecore 2012.12.27 21:42 신고 댓글주소 | 수정 | 삭제

      위 방법은 64bit OS 환경에서 32bit OllyDbg 를 이용하여 32bit PE 파일을 디버깅 하는 방법에 대한 얘기 입니다

      64bit 레지스터는 64bit 지원 디버거에서만 볼 수 있습니다.
      당장은 IDA Pro나 windbg 를 쓰셔야 하지요.

      감사합니다.

  6. 안녕하세요 2012.12.21 09:55 신고 댓글주소 | 수정 | 삭제 | 댓글

    플러그인 사용해도 버그는 있군요.. ㅠㅠ...

    입력 필요하면 그 후 부터 디버거로 제어가 안되네요 ㅠ..

    아, 2.00.01 버전에서 플러그인은 사용 못하나요?

  7. Ko 2012.12.27 16:20 신고 댓글주소 | 수정 | 삭제 | 댓글

    초보인 저에게는 쉽게 써주셨다 해도 어렵네요 ;;
    책 잘 써주셔서 감사합니다 책 잘 보고있습니다 ^^

  8. LoGeR 2013.01.31 15:33 신고 댓글주소 | 수정 | 삭제 | 댓글

    제가 64bit에서 사용중인데 책에 나온 예제에서 바로바로 주소로 이동하도록 설명해놓은 부분이 있는데 주소가 완전히 다르게 나오네요... 64bit라서 어쩔 수 없이 이런건가요??

    • reversecore 2013.02.08 17:43 신고 댓글주소 | 수정 | 삭제

      안녕하세요.

      주로 스택/동적할당메모리/동적문자열 등에서 주소가 달라집니다.

      어떤 예제를 보고 계신지요?

      감사합니다.

  9. 강경태 2013.04.26 22:22 신고 댓글주소 | 수정 | 삭제 | 댓글

    운영자님 hookdbg.exe. 프로그램이 첨부됐다셨는데 대체 어디에 있다는말씀이신지.

    그거찾다가 하루다가겠네요...시간낭비 이런 소소한것만 조금더 신경써주셔도됄터인데

    첨부된 소스예제에는 cpp 파일밖에 없어요

  10. coffee 2013.06.06 10:37 신고 댓글주소 | 수정 | 삭제 | 댓글

    난 첨부된 소스예제 cpp찾는데, 소스를 찾아도 못찾겠음.
    거기다 win7용 64bit 올레디버거를 올렸다고 테스트 해봤는데, 안댐
    난 winserver 2008 r2를 사용하는데, 실행은 되는데, 올레디버거 실행되고 메뉴에서
    디버거 부분만 마우스 클릭이 안되요.

  11. 리버싱 2013.11.03 00:51 신고 댓글주소 | 수정 | 삭제 | 댓글

    HelloWorld.exe파일을 열면 unable to locate file 경로명 이 나오면서 파일이 열리지 않습니다..
    ollydbg 2.0쓰고 윈도우8 64bit 사용중 vc++ 2013 express 사용중입니다. 무슨오류일까요.... 구글링해도 없는것 같네요ㅠㅠ 공부하려고하는데 막혀서 너무 답답해요 답좀해주세요!

  12. root 2013.11.22 14:48 신고 댓글주소 | 수정 | 삭제 | 댓글

    64 환경이구요
    책에 제시되어있는 예제는 제일 처음 예제인 helloworld 리버싱 메인 찾는 기초리버싱 음 15페이지에 나와있는 그림 2.3에 코드 윈도우 창,어드레스가 004011A0 으로 시작이 되는데 제 작업환경에는 어드레스가 00425000 으로 시작이 되네요

    이렇게 되니 책이랑 비교해가며 공부하기가 좀 힘들어서 어떻게 해야할지 궁금하네요.. 이럴땐 제가 32 비트 환경으로 컴퓨터를 바꾸거나 가상머신을 돌려야 하는 건가요?? 위에 저와 같은 말씀을 드린분이 계시는데 같은 질문 인것 같아서 정확하게 알고 싶습니다 책과 다르게 나오니 공부하기가 쉽지 않네요 ... 환경탓이긴 하지만요 ㅎㅎ...

  13. root 2013.11.22 14:52 신고 댓글주소 | 수정 | 삭제 | 댓글

    일단 리버스코어님의 첫머리 말씀이 진짜 마음에 와 닿습니다 무엇부터 시작해야 할지 고민보다는
    이것 역시 여러 기술중 하나로써 배워가는 것이며 이걸 함으로써 곧 다른것들 역시 하게 되는 거라는 말씀이 아주 큰 힘이 되고있습니다 ㅎㅎ 그렇게 기쁜맘으로 출발을 하려는데 처음부터 발목이 잡혀서... 그 기대를 놓치고 싶지가 않네요 !...

  14. asdf 2013.11.28 01:33 신고 댓글주소 | 수정 | 삭제 | 댓글

    사진으로 첨부해서 보여드리고 싶은데
    메일 한통만 보내주시면 안될까요?

    dale07@naver.com

    입니다. 죄송합니다 ㅠㅠ
    아예 올리디버거가 아예 실행이 안되서요...

  15. root 2014.01.04 11:42 신고 댓글주소 | 수정 | 삭제 | 댓글

    정확히 VA 버츄얼 어드레스가 책에는 0040110A 이런식이고 win7 64bit 환경인 저한테는 VA가 00425000 이렇게 다릅니다 해결책이 ..아직까지도 못찾고 있습니다..

  16. rnmn 2014.09.23 12:21 신고 댓글주소 | 수정 | 삭제 | 댓글

    IAT 부분을 따라하고 있는데요

    제 컴퓨터가 64BIT라서 그런지 Ollydbg로 notepad를 열려고 하면

    file notepad는 32비트 portable execuative가 아니라는 경고 메시지가 뜨고

    그대로 실행시키면 unable to start file ... 이라는 메시지가 뜨면서 실행이 되지 않습니다.

    Ollydbg 2.0을 설치했는데도 마찬가지네요

    어떻게 해결 할 수 있나요?

  17. Prabbit's archive 2017.05.09 02:04 댓글주소 | 수정 | 삭제 | 댓글

    관리자의 승인을 기다리고 있는 댓글입니다





티스토리 툴바