오홋!!! 조금씩 WinDbg의 위력을…. .오오오오오오오~~~

오홋!!! 깔아놓고… 사용법을 찾아서 이리저리 헤매다가 조금씩 사용법을 익혀가고 있다.

디버기에서 내가 만든 SFFD 드라이버 올리고서, 시작하고나서

Windbg거에서 Ctrl + Break으로 디버기를 잡아놓는다.

그리고 x 명령어로 로드된 심볼들을 확인!!!

0: kd> x <드라이버명>!*

0: kd> x SFFD!*
f87501ac SFFD!ConfigPath = struct _UNICODE_STRING “D:\conf\”
f8750094 SFFD!__security_cookie_complement = 0xffff44bf
f874f0f4 SFFD!KeTickCount = struct _KSYSTEM_TIME
f8750018 SFFD!DecryptData = 0xf874c070
f8750124 SFFD!HashTable = 0x00000000
f8750290 SFFD!OutstandingIRPCount = 0
f8750128 SFFD!XorKey = unsigned char [129] “”
f8750120 SFFD!CountMutex = 0
f8750098 SFFD!FullPathLookaside = struct _NPAGED_LOOKASIDE_LIST

이제 원하는 곳에 뷁포인트를 걸어서 따라가보자~~~ 유후~~

0: kd> bp <드라이버명>!<심볼명>

0: kd> bp SFFD!DriverUnload
0: kd> bl
 0 e f874b670     0001 (0001) SFFD!DriverUnload
 1 e f874b6ad     0001 (0001) SFFD!DriverUnload+0x3d

DriverUnload에 뷁포인트는 걸어놨으니까… ‘g’ 명령어로 디버기를 놓아주면
DriverUnload가 호출될때 다시 WinDbg가 호출될 것이다.
그럼 디버기가 DriverUnload를 호출할 수 있게 장치관리자에서 SFFD드라이버를 중지시킨다.

그러면 DriverUnload 호출 부분 소스와 함께 디버깅 환경이 쫘악 뜬다…
윈도우 옵션에서 레지스터, 변수, 쓰레드, 메모리, 커맨드 선택해서 원하는데로 화면구성하면 됨…

이제부터는 비주얼 디버깅 처럼 F9, F10, F11 등을 이용해서 디버깅하면된다.
커맨드 창에서 명령어 입력해서 해도 되고….

사용자 삽입 이미지


유유 유유 프로젝트 할때는… KdPrint로 하나 하나 찍어가면서 디버깅 했는데 ㅡ.ㅡ;
어디서 왜 죽었는지도 모르고…. 계속 파란 화면보면서…. 정말 바보 같았네…
계속 DriverUnload할때 왜 죽나 했었는데….지금 따라해보면서… 죽는 부분 바로 찾아서
수정하니까 괜찮네… 헐…. 너무좋다….

   2 Comments


  1. deltakam
      2007-12-05

    나 광성.. ㅋㅋ

    우리 드라이버 윈2000에서만 돌아가는거 아니었니 ? ㅎㅎ;
    저거 어디서 돌린거야~?

  2. 쿠쿠
      2007-12-06

    XP에서도 잘 돌아가… 저건 WinDBG화면~~~~~

    ㅡ.ㅡ;; 저것만 알았어도.. 파란화면 맨날 안봐도 됬는데… 쿠쿠

댓글 남기기