반응형

 

Kernel 모드에서 특정 프로세스 디버깅하기

 

이번 포스트에서는 WinDbg Debugee OS에 연결 한 후(Kernel-Mode), TestApp.exe프로세스를 디버깅하는 절차에 대해 설명합니다.

 

n  디버깅 하려는 TestApp.exe EPROCESS 주소를 확인하기 !process 0 0 TestApp.exe명령을 입력합니다.


n  .process /i EPROCESS주소를 입력하여 해당 프로세스 컨텍스트로 이동합니다.
Context switching
을 위해 ‘g’를 입력하라고 하는군요. ‘g’를 입력해서 진행시키면 context가 변경된 후, 다시 break가 걸립니다.

 

n  TestApp.exe의 심볼을 로드하기 위해 .reload /user 명령을 입력합니다.

 

n  이제 디버깅 하려는 프로세스의 컨텍스트로 이동되었고 심볼도 로드되었으므로, 디버깅하려는 함수에 breakpoint를 설정합니다.

 

n  보시는 것처럼 TestApp OK버튼을 누르면, DoSomething에서 breakpoint가 걸리는 것을 확인 할 수 있습니다.

 

n  로드된 프로세스의 심볼을 언로드 하려면 .reload /u /user명령을 입력하시면 됩니다.

 

이후의 디버깅은 알아서~ 하시면 됩니다.



n  kernel-mode 디버깅 환경에서 특정 프로세스의 user function에 breakpoint 설정하는 방법

> bp /p @$proc KERNEL32!CreateThreadStub


n  user module list

> lmu

반응형

+ Recent posts