'VMware'에 해당되는 글 2건

  1. 2008.12.05 WinDbg 심볼 경로 설정하기
  2. 2008.12.05 VMWare를 이용한 WinDbg 설치
Programming/Kernel / Driver2008. 12. 5. 17:37

앞에서 VMWare와 WinDbg를 연동하는 방법을 살표보았다.

 

  연동만 되었을 뿐 안에서 사용하는 함수들의 이름 같은 것을 확인하기 위해서는 심볼이 필요하다.

 

  이번에는 심볼 경로를 설정하여 디버깅을 좀 더 쉽게 할 수 있도록 설정하는 방법을 정리해보겠다.^^

 

  이번에도 스노야님의 강의를 많이 참고 하였다 (감사합니다~ ^_^)

==========================================================================================

 

자~ 레뒤 고~~

 

 

우선 커널 디버거를 켜보자~! 정상적으로 작동이 되었다면 "File - SymbolFilePath" 메뉴로 들어간 다음 아래 그림과 같이 경로를 지정해주자. 아래 경로는 MS사의 심볼 서버 경로입니다.

 

 

경로는 srv*C:\WebSymbols*http://msdl.microsoft.com/download/symbols 이다. 위 그림에서는 Reload란이 체크되어 있지 않지만 체크하도록 하자.!!

 

그리고 OK 버튼을 누르기 전에 아래 그림과 같이 C드라이브에 WebSymbols 디렉토리를 꼭 만들어 놓도록 하자. 

 

 

정상적으로 로드가 다시 되었다면 아래 그림과 같은 메시지를 출력할 것이다.

 

 

==========================================================================================

 

  앞에서 정리한 연동에 이어 심볼 경로까지 설정했다.

  이제 마음껏 커널을 파헤쳐보자!!@

 

  아~!! 커널을 파헤치기 전에 꼭 VMWare 스냅 샷을 찍어 놓도록 하자.

  예방 차원에서다.. 커널을 파헤치다 윈도우를 다시 깔아야 되는 수가 생기기 때문이다 ^_^

 

Posted by skensita
Programming/Kernel / Driver2008. 12. 5. 17:32

MS에서 배포한 커널 디버거인 WinDbg를 VMWare와 연동하는 것을 정리해보아야지~

아래 글은 내 생각대로 쓴 글도 있고 스노야님 께서 올려주신 강좌를 참조한(거의 배꼇다 ^^;) 부분도 있다.

 

 

대표적인 커널 디버거는 WinDbg와 SoftICE가 있지만 현재 SoftICE는 계발이 중지된 상태이다.

 

그래서 현재 가장 많이 사용되는 커널 디버거 툴이 WinDbg가 아닐까 한다. SoftICE와 다르게 WinDbg는 또 다른 컴퓨터를 디버깅할 수 있지 자기자신을 디버깅할 수 는 없다.

 

즉, 2대의 컴퓨터가 필요하다는 것이다. 하지만 VMWare를 이용하면 한 대의 PC로도 가능하다. 요즘은 PC의 성능이 좋아서 가상 머신정도는  돌리는 대는 별 지장이 없어보인다.

 

그럼 연동 하는 것을 스노야님 강좌를 참조하여 정리해 보자~!!!

 

==========================================================================================

 

우선 가상머신에 시리얼 포트를 추가해주어야 PC와 VMWare가 통신이 가능하다. 시리얼 포트는 "VM -> Settings -> Hardware" 탭에서 추가할 수 있다.

 

아래 그림은 시리얼 포트를 추가하는 모습을 차례대로 스크린 샷을 찍어 보았다.

 

 

 

 

 

 

 

 

 

여기에서 설정하는 파이프 이름이 WinDbg와 연동할 때 사용되는 이름이다.

 

 

 

 

위와 같이 하면 com_1이라고하는 시리얼 포트가 지정된다.(마지막 그림에서 I/O mode를 체크하는 이유는 잘 모르겠다 ^^;)  포트를 지정했으면 VMWare를 시작하여 부팅 시 디버그 모드가 작동할 수 있도록 boot.ini 파일을 작성하여야 한다.

 

아래는 boot.ini 파일을 수정한 그림과 수정 후 부팅과정에서 뜬 디버깅 모드이다.

만일 c: 루트디렉토리에 boot.ini 파일이 없다면 실행창에 "c:boot.ini"이라고 입력하면 창이 뜬다.

 

 

 

 

여기 까지 했으면 타겟 PC(여기서는 VMWare)의 설정은 끝났다. 이제 WinDbg를 설정하여 연결되도록 해야한다. 아래는 그림은 위에서 명명한 파이프 이름으로 WinDbg를 VMWare와 연동하는 모습이다.

 

 

설정은 끝났다. 정상적으로 연동이 되었다면 WinDbg를 켜놓은 상태에서 타겟 PC(VMWare)를 디버깅 모드로 부팅 시키면 아래 그림과 같이 WinDbg가 작동한다.

 

 

타겟 PC가 정상적으로 부팅된 후  WinDbg의 "Debug -> Break" 메뉴를 이용하여 타겟 PC의 커널을 마음껏 살펴 볼 수 있다. 아래 그림은 부팅 후 WinDbg를 이용하여 로드된 모듈을 확인한 모습이다.

 

 

 

==========================================================================================

 

이상으로 연동하는 것을 정리해 보았다.

Posted by skensita