본문 바로가기

My Study/Reversing

Vmware를 사용한 커널 디버깅

WinDbg로 커널 디버깅을 할 수 있는데요.
일반적으로 실무가 아닌 곳에서는 두 대의 컴퓨터를 사용해서 실습하기가 힘듭니다.
그래서 한대의 컴퓨터로 할 수 있는 방법인 가상 머신에서 OS를 돌려서 가상머신 OS를 커널 디버깅 하는 방법입니다.

방법만 간략하게 나열해 보겠습니다.

1. WinDbg 셋팅 ( 디버거 )

위와 같이 커널 디버그를 클릭해주세요.

\\.\pipe\[아무이름]
아무이름 넣는 부분에 보통 com1을 많이 넣지만 그냥 전 Ezbeat을 넣었습니다.
양방향 통신을 해야되므로 이름있는 파이프를 사용하는 것 같습니다.
나머지는 위와같이 셋팅해 주시면 됩니다. 그러고 확인을 누르면 WinDbg의 셋팅은 끝나게 됩니다.

그 결과 입니다. 연결을 기다리고 있네요.

이제 디버거의 셋팅은 끝났으니 디버기를 셋팅해 봅시다.

2. Vmware 셋팅 ( 디버기 )
당연히 Vmware에 Windows가 깔려 있어야하겟죠?~ ^^
OS를 키기전에 먼저 VM setting을 하겠습니다.

여러개의 OS가 설치 되어 있다면 디버기가 될 OS를 클릭해 주시면 VM에서 Settings를 눌러주세요.

Hardware부분을 보시면 우리는 네임 파이프 연결을 해야되는데 없습니다. 그렇기 때문에 Add를 눌러서 추가를 해주겠습니다.

위와 같이 해주시고 Next~!

네임 파이프를 사용할 것이므로 3번째것을 택하고 Next~!

위와 같이 셋팅 후 Finish~!

위와 같이 체크를 해주시고 OK를 눌러줍니다.

Devices에 아까 추가해줬던 것이 생긴 것을 볼 수 있습니다.
이제 디버기 셋팅이 끝났냐?? 아닙니다. 
이제 디버기의 OS를 키겠습니다.

OS를 켰으면 나머지 셋팅을 하겠습니다.

디버기 OS 실행 창에서 msconfig를 쳐주세요.

BOOT.INI탭에서 고급 옵셥을 눌러줍니다.

고급 옵션에서 위와 같이 셋팅해 줍니다. 그리고 확인을 눌러서 나오시게 되면 디버기의 셋팅도 끝나게 됩니다.

이제 디버기의 OS를 끄고 재시작을 해주세요.
그렇게 되면 디버거의 WinDbg에서의 화면을 보시겠습니다. ( 클릭 -> 화면 크게 됨 )

위와 같이 연결이 된 것을 확인할 수 있습니다.
여기서 Ctrl + Break를 누르시게 되면 디버기의 OS는 멈추게 되고 디버거의 command창이 활성화 될 것입니다.

kd라고 나타난거보니 커널 디버깅 중인가 봅니다.
그리고 멈춰있는 주소도 보시면 가장 앞이 8로 시작하는거 보니까 커널 영역이군요. ( 80000000 ~ FFFFFFFF )

위에 친절히 "THIS IS NOT A BUG OR A SYSTEM CRASH" 라고 나와있으니 겁은 먹지 마세요.

이제 커널 디버깅을 시작할 여건을 마련했습니다. 심볼 정보도 로드시키고 다 해야겠죠??

여기 까지 입니다.

'My Study > Reversing' 카테고리의 다른 글

IDA v5.2 동 네트워크 대역에서 동시 사용  (0) 2010.03.13
커널모드에서 유저모드 디버깅  (0) 2010.03.11
Segment Register  (0) 2010.03.10
Assembly 점프 문  (4) 2010.02.26
네이트온 안티디버깅 우회  (0) 2010.02.20