본문 바로가기

@@나도이것저것또는머리아팠는데문제해결

Vmware 가상 OS와 Windbg Remote 연결

악성코드 분석을 하는도중 커널디버깅을 해야 할일이 생겨서 windbg를 리모트로 가상 os와 붙여야 된다고 하더라구요.. 그래서 검색신공으로 마구마구 검색하여 해봤으나 대부분 안된다...ㅠ

그래서 결국 삽질끝에 해결은 했습니다.

 

 

 

windbg옵션에서 symbolpath를 설정해주는 옵션이 있습니다.

첫번째 옵션에 있으니 찾기 쉬우실거에요 ..

srv*.*http://msdl.microsoft.com/download/symbols 로 세팅해줍니다.

이 심볼패스를 설정해주는 이유는 커널디버깅할때 주소값들에대한 의미를 부여하는것입니다.

즉 심볼패스를 설정하지 않으면 특정 주소값의 의미를 사용자가 파악하기는 굉장히 불가능? 에 가깝습니다.

그러나 이 심볼패스를 지정해주면 특정 주소값이 어떤걸 의미하는지 함수인지 SSDT테이블인지 알려줍니다.

 

 

 

그리고 vmware에서 시리얼 포트를 추가해줍니다.

 

 

 

여기서 시리얼포트이름을 설절해줍니다.

나중에 windbg에서도 시리얼포트 이름을 설정해주는데 그거랑 같이 설정해 주면 됩니다.

이름은 자기 맘대로 만드시면되요.

저는 그냥 알기쉽게 com1포트를 사용하면 com_1, com_2이런식으로 사용합니다.

아차! 이거 세팅할때 가상os를 종료하고 진행하셔야합니다.

 

 

그리고 I/O mode에서 Yield CPU on poll 을 체크합니다.

 

 

그리고 vmware의 가상 os를 부팅합니다.

이것때메 삽질했었는데 이부분에대해 언급하는 자료가 없더라구요 ㅠㅠ

위에서 시리얼포트를 추가했을때 위와같이 관리도구를 보면 추가된 시리얼 포트가 있습니다.

저는 예전에 한번 추가한적이있어서 2개이고 보통은 1개일겁니다.

여기서 추가된 포트이름대로 뒤의 boot.ini를 세팅해 주시면 됩니다.

이것때메 거의 1시간 삽질했네요

 

 

실행 > msconfig

위와같이 세팅을 해줍니다.

 

 

그리고 가상 OS를 종료합니다.

 

 

그리고나서 Windbg의 시리얼 COM을 세팅해줍니다.

port는 vmware에서 세팅해준 이름 그대로 세팅해주시면 됩니다.

그리고 체크체크 하고 os를 부팅해주면...

 

 

 다음과 같이 빵~ 하고 windbg가 돌아 갑니다.

 

 

 

여기서 ctrl+break 버튼 이 브레이크버튼 키보드에서 정말 안쓰는 키인데 이거 찾을려고 또 키보드를 유심히 관찰했다는...;;;

아무튼 구지 저렇게 단축키 안써도 메뉴에 있으니까요 잘살펴보심 되구요

이거 누르면 윈도우가 디버깅 모드로 진입하게 되구요(멈춥니다.)

g를 누르면 윈도우가 running상태로 진입하게 됩니다.