목차
개인적으로 사용을 잘 할 줄 모르기 때문에 간단한 사용법 정도를 이야기 하게 될 듯 하다.
먼저 debugging 을 위해서는 process 에 접근을 해야 한다. 처음 시작부터 debugging 상태에서 실행을 시키는 방법도 있지만, 여기서는 이미 실행되고 있는 process 에 Attach 하는 것을 기본으로 설명한다.
기본화면
아래화면이 CPU window 이다. 각 화면은 아래와 같다.- 1 번 화면 : Disassembly code
- 2 번 화면 : Registers
- 3번 화면 : Dump
- 4번 화면 : Stack
이 상황에서 무엇이 가능한지를 보려면, 마우스 오른쪽 버튼을 누르자. 아래와 같은 Context menu 가 나온다.
Attach 방법(프로세스에 접근, 붙이기)
이제 특정 application 에 immunity debugger 를 붙여보자.(attach) 참고로, attach 를 하면 break 상태가 되기 때문에 유의하자.File >> Attach 또는( Ctrl+F1 ) >> Select process to attach 창 >> process 선택 >> attach 버튼을 하면 ntdll 에서 attach 된 모습을 보여줄 것이다. 이 때
마우스 오른쪽 버튼(context menu) >> view >> Module “자신이 원하는 process“를 하면 된다.
intermodular calls
Process 내에서 다른 process 의 함수를 호출하는 경우를 찾아보자.Assembler 에서 CALL 을 찾으면 알 수 있지만, 일일이 찾기는 귀찮고, 힘들다. 이런 몇가지 항목들은 기본적으로 Immunity Debugger 에서 제공한다. 아래처럼 context menu 를 불러서
Context Menu >> Search for >> All intermodular calls를 선택하면 된다.
그럼 Intermodular call 창이 하나 뜨게 되고, 더블클릭을 하면, 그 위치의 Assembler 를 보여준다.
CrackMe, UnpackMe, KeygenMe
참고로 reverse enginneering 이나 debugging sample 은 아래 사이트에서 구할 수 있다.http://forum.tuts4you.com/forum/37-crackmes-unpackmes-keygenmes/
안녕하세요
답글삭제저는 attach를 실행 할 경우 모든 프로세스가 보이지 않습니다.
일부만 보여요.... 그래서 제가 원하는거에 붙을수가 없네요 이럴땐 어떻게 해야하나요??
흠, 무슨 상황인지 잘 몰라 정확한 답변은 못드리겠지만,
삭제그러면 실행시킬 때 붙이는 방법을 사용하는 것은 어떤가요?
그리고 혹시 windows 64-bit 버전을 사용하신다면, 64bit 버전에서는 잘 동작하지 않아서 32bit 버전에서 사용해 보세요.
@정민우 // 디버거를 관리자 권한으로 실행 시키시면 전체 프로세스가 보일 겁니다~
삭제