본문 바로가기

reversing

windbg kernel debugging

vmware, windbg를 이용하여 kernel debugging 을 할 것이다.

구글에 검색해보면 관련 글에 대해 소개한 블로그가 많이 있다. 처음 kernel debugging을 해보기 위해 여러 블로그들을 따라해보았지만 알 수 없는 오류로 인해서 약간의 삽질을 해서.. 이러한 삽질을 하고 있는 사람들에게 좀 더 도움이됬으면 하는 마음으로 글을 쓴다.

 

우선, Debuggee(Test System) VMware 설정을 해보도록 하겠다.

1. serial port 추가

[Edit virtual machine settings] - [Add] 까지 클릭한다.

 

 

Serial Port 를 선택한 후 Next

 

 

Output to named pipe 체크 한 후 Next

 

 

Name pipe 다음과 같이 설정한 후 Finish 하면 된다.

여기서 \\.\pipe\임의지정 하면 된다. 이 글에서는 \\.\pipe\xp_windbg 로 설정했다.

 

 

마지막으로, [Serial Port] - Yield CPU on poll 항목을 체크 하면 Serial Port 추가가 끝이 난다.

 

※ 여기서 오류가 날 수 있다.!!

필자의 경우 Yield CPU on poll 체크 할 수 있는 화면이 나오지 않고, "Virtual printers must be enabled in the preferences." 라는 문장만 나왔다.

이러한 오류를 해결하는 방법은..

[Edit] - [Preferences] -> [Devices] -> [Change Settings] -> Enable virtual printers 체크!!

함으로써 해결할 수 있다.

 

 

2. Debuggee 설정

 

다음과 같이 설정한다.

# notepad boot.ini

boot.ini -> /fastdetect /debugport=COM1 /baudrate=115200 추가

 

 

3. windbg 설정

windbg를 다운로드 받은 후 [속성] 에 들어간다.

 

C:Program Files\Debugging Tools for Windows\windbg.exe" -k com:port=\\.\pipe\xp_windbg,baud=115200,pipe,reconnect

 

이로써 모든 설정이 끝났다. windbg 를 실행한 후 VMware 내의 OS가 부팅되면 다음과 같이 windbg와 연결이 된다.

 

Ctrl + Break 를 누르면 다음과 같이 디버깅 모드로 전환이 된다.

kd 를 통해 현재 커널이 디버깅 중인 것을 확인할 수 있다.

 

 

※ 위의 모든 설정을 했음에도 windbg가 작동하지 않을 경우

serial port 에 문제가 있을 수 있다. vmx 파일을 열어서 serial port 를 검색해보기 바란다.

혹여나 serial port 0 을 프린터가 사용하고 있다면 하드웨어에서 프린터를 제거하고 serial port 를 다시 추가하면 될 수도 있다. 

(필자의 경우 위의 이 부분을 해결하니 정상적으로 windbg가 작동..)

'reversing' 카테고리의 다른 글

IDA remote gdb debugging with gdbserver  (0) 2016.04.10
예외 처리를 이용한 Anti-Debugging  (0) 2016.03.12
BSWAP instruction  (0) 2016.01.19
assembly jump instruction  (0) 2016.01.19
프롤로그(prolog), 에필로그(epilog)  (0) 2016.01.03