본문으로 바로가기

Windbg로 커널 디버깅하기

category Shake2Malware/rootkit 2017. 5. 4. 22:14

[그림] vm -> setting


  커널 디버깅을 하기 위해서는 Serial Port를 추가해 줄 필요가 있다. 이는 전원을 끈 상태에서, Vm에서 setting을 들어가면 된다.


[그림] Serial Port


  Serial Port를 수정하는 장면이다. Output to named pipe를 선택한다.


[그림] Serial Port


  초기 파이프 이름은 위 그림에서 처럼 \\.\pipe\com_1로 나온다. 이를 복사해두거나 기억해두자.(굳이 기억하지 않아도 나중에 찾아서 하면 되긴 한다.)



[그림] Edit -> Preferences


  Windbg가 붙지 않아서 고생했었는데, 다음과 같은 작업을 해주어야 한다.


[그림] Devices


  Edit -> Preferences로 들어가서, Devices로 진입한 후, Virtual printer에 체크를 해주어야 한다. 그래야 Windbg가 붙는다.



여기까지 진행을 했으면 Windbg로 넘어가자


[그림] WinDbg


  File -> Kernel Debug를 클릭한다.


[그림] Kernel Debugging -> COM


  COM에서 Port를 아까 기억해둔 \\.\pipe\com_1를 적어준다. 그리고 Pipe와 Reconnect에 체크를 해주자.



[그림] File -> Symbol File Path


[그림] Symbol Path


  Symbol Path는 다음과 같이 설정해 주면 된다.


  c:\sym;srv*c:\sym\websym*http://msdl.microsoft.com/download/symbols



  여기까지 하고 Vm에 붙일 윈도우를 Power On하자


  Power On 한 후에, cmd를 관리자 권한으로 실행시키자.


[그림] debug on


  디버깅 설정을 해주는 것이다.


  그리고 WinDbg에서 Break를 걸어주면 커널 디버깅이 되는 것을 확인할 수 있다.


[그림] Debug -> Break


[그림] 실행화면


  위 그림처럼 나왔다면 성공한 것이다.


[그림] 실행


[그림] 실행


  커널 디버깅을 함으로써 EPROCESS, KPROCESS 등 구조체를 확인 할 수 있고, 루트킷의 탐지가 가능하다.