[컴][디버그] Immunity Debugger 이뮤니티 디버거 사용법 1 - attach

Immunity Debugger 에 대한 정보가 많이 없는 듯 하여, 정리를 시작했다.
개인적으로 사용을 잘 할 줄 모르기 때문에 간단한 사용법 정도를 이야기 하게 될 듯 하다.

먼저 debugging 을 위해서는 process 에 접근을 해야 한다. 처음 시작부터 debugging 상태에서 실행을 시키는 방법도 있지만, 여기서는 이미 실행되고 있는 process 에 Attach 하는 것을 기본으로 설명한다.

기본화면

아래화면이 CPU window 이다. 각 화면은 아래와 같다.
  • 1 번 화면 : Disassembly code
  • 2 번 화면 : Registers
  • 3번 화면 : Dump
  • 4번 화면 : Stack
image

이 상황에서 무엇이 가능한지를 보려면, 마우스 오른쪽 버튼을 누르자. 아래와 같은 Context menu 가 나온다.
image


Attach 방법(프로세스에 접근, 붙이기)

이제 특정 application 에 immunity debugger 를 붙여보자.(attach) 참고로, attach 를 하면 break 상태가 되기 때문에 유의하자.
File >> Attach 또는( Ctrl+F1 ) >> Select process to attach 창 >> process 선택 >> attach 버튼
을 하면 ntdll 에서 attach 된 모습을 보여줄 것이다. 이 때
마우스 오른쪽 버튼(context menu) >> view >> Module “자신이 원하는 process“
를 하면 된다.

image

image

image

intermodular calls

Process 내에서 다른 process 의 함수를 호출하는 경우를 찾아보자.
Assembler 에서 CALL 을 찾으면 알 수 있지만, 일일이 찾기는 귀찮고, 힘들다. 이런 몇가지 항목들은 기본적으로 Immunity Debugger 에서 제공한다. 아래처럼 context menu 를 불러서
Context Menu >> Search for >> All intermodular calls
를 선택하면 된다.
그럼 Intermodular call 창이 하나 뜨게 되고, 더블클릭을 하면, 그 위치의 Assembler 를 보여준다.
image

image



CrackMe, UnpackMe, KeygenMe

참고로 reverse enginneering 이나 debugging sample 은 아래 사이트에서 구할 수 있다.
http://forum.tuts4you.com/forum/37-crackmes-unpackmes-keygenmes/

댓글 3개:

  1. 안녕하세요
    저는 attach를 실행 할 경우 모든 프로세스가 보이지 않습니다.
    일부만 보여요.... 그래서 제가 원하는거에 붙을수가 없네요 이럴땐 어떻게 해야하나요??

    답글삭제
    답글
    1. 흠, 무슨 상황인지 잘 몰라 정확한 답변은 못드리겠지만,
      그러면 실행시킬 때 붙이는 방법을 사용하는 것은 어떤가요?
      그리고 혹시 windows 64-bit 버전을 사용하신다면, 64bit 버전에서는 잘 동작하지 않아서 32bit 버전에서 사용해 보세요.

      삭제
    2. @정민우 // 디버거를 관리자 권한으로 실행 시키시면 전체 프로세스가 보일 겁니다~

      삭제