당연히 windbg
는 일단 설치가 되어 있어야 한다. (https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools)
Environment
- Host: Windows 10 64bit
- Guest: VMware 15, Windows 10 64bit
- Guest OS에 Secure boot 해제 시켜놔야 한다.(Settings > Options > Advanced)
Settings
Guest OS
windbg
를 설치한 Host OS에서 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
경로에 보면 kdnet.exe
와 verifiedNICList.xml
을 찾을 수 있는데 이를 복사해서 Guest OS로 가져간다.
C:\KDNET>dir
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: A245-0C27
C:\KDNET 디렉터리
2020-08-09 오후 02:38 <DIR> .
2020-08-09 오후 02:38 <DIR> ..
2019-12-06 오후 10:09 69,576 kdnet.exe
2019-10-15 오후 01:51 15,109 VerifiedNICList.xml
2개 파일 84,685 바이트
2개 디렉터리 38,138,531,840 바이트 남음
C:\KDNET
폴더를 생성해서 거기다가 넣어준다.
C:\KDNET>kdnet
Network debugging is supported on the following NICs:
busparams=11.0.0, Intel(R) 82574L Gigabit Network Connection, KDNET is running on this NIC.
kdnet.exe
를 실행시켜서 사용 가능한 NIC가 있는지 확인한다.
C:\KDNET>kdnet [HOST IP] [port]
port는 50000~50039 사이를 권장한다고 한다. 위 명령을 실행하고 나면(관리자 권한으로 실행해야함) 이제 Host OS에서 실행할 명령어를 던져준다!
windbg -k net:port=50001,key=****.****.****.****
이런 형태로 준다. 키는 각자 값이 다 다르니까 그걸로 사용하면 된다. 이제 Guest OS에서의 설정인 끝이다.
Host OS
아까 파일을 복사했던 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
여기에서 cmd 창을 하나 띄워준다. 그리고 위에서 알려준 명령어를 쳐주기만 하면... 끝이다
디버거가 켜졌는데 게스트에 안붙었으면 게스트를 리부팅 해주면 된다.
@echo windbg on
path C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
start windbg -k net:port=50001,key=4u3cogrum3yv.2qg40oldkhqvw.uhtbbp2ki6s8.307eefdcg0nb0
pause
이런식으로 .bat
배치파일을 만들어 놓는게 편하다
+) 추가로 WinDbg Preview가 더 쓰기 좋다해서, 이것도 작성한다.
windbg -k net:port=50001,key=****.****.****.****
여기서, 포트번호랑 key값을 기억하면 된다.
그리고 WinDbg Preview를 켠다.
File을 눌러서 Attach to kernel을 선택한다.
여기다가 이제 포트번호랑 key만 제대로 입력해주면 된다! 저러고 오케이 누르고, 디버기 윈도우를 재부팅하면
브레이크도 제대로 걸린다~ 이제 공부해야지
검색하면 주로 나오는 시리얼 포트? 를 이용해서 하는거보다 이 방법을 권장한다고 WinDbg preview 뭐 설정하다가 봐서.. 뭐 아무튼 이렇게 하면 된다!
-끝-
'Kernel > Windows' 카테고리의 다른 글
[Windows][HEVD] stack overflow (1) | 2020.09.30 |
---|---|
[Windows][HEVD] build 환경 구축(feat. Windows driver 개발 환경 구축) (0) | 2020.09.01 |