티스토리 뷰
host pc : iMac pro
debugger vm : Windows 10
debuggee vm : Windows 7
사전 준비
- Windows OS 2개
- VMware Fusion 3.0 이상
- windbg (debugger vm)
개요
- Mac OS에서 VMware Fusion으로 Windows 2개를 켠 후, 하나의 Windows가 반대쪽 Windows 커널 디버깅을 가능하도록 한다.
VMware Fusion 수동 시리얼 포트 설정 시작 전
- VMware의 VM 구성 파일은 .vmx 파일이다. 이 녀석의 Serial port 부분을 수정하면 되는데 Mac은 약간 번거롭다.
- Mac OS에서 VMware Fusion을 사용하면 기본적으로 ~/Library/Application Support/VMware Fusion/Virtual Machine/에 VM 패키지들이 저장된다.
Windows Kernel Debugging 설정 방법
-
Finder(Windows로 치면 explorer.exe)를 켜고 Windows 10 VM 패키지(.vmwarevm)를 마우스 오른쪽 클릭
-
Show Packet Contents(패키지 내용 보기) 선택
-
.vmx 파일을 찾아 sublime text와 같은 텍스트 뷰어로 오픈
-
serial0로 시작하는 부분 찾음
-
serial0 부분을 전부 날리고, 표 1의 커맨드를 추가
-
.vmx 파일 저장
-
Finder(Windows로 치면 explorer.exe)를 켜고 Windows 7 VM 패키지(.vmwarevm)를 마우스 오른쪽 클릭
-
Show Packet Contents(패키지 내용 보기) 선택
-
.vmx 파일을 찾아 sublime text와 같은 텍스트 뷰어로 오픈
-
serial0로 시작하는 부분 찾음
-
serial0 부분을 전부 날리고, 표 2의 커맨드를 추가
-
.vmx 파일 저장
-
Windows 7 VM을 실행
-
관리자 권한으로 cmd 창 실행
-
표 3의 커맨드 입력
-
Windows 7 VM 종료
-
Windows 10 VM을 실행
-
windows 7과 같은 bit의 windbg를 실행
-
File > Kernel Debug 클릭
-
baidrate를 115200으로 port를 com1으로 설정(나머진 체크하면 안 됨)
-
OK 클릭
-
Windows 7 VM 실행, 부팅 후 debugger에 붙을 때 까지 대기
-
debugging 시작
표 1 serial0.present = "TRUE" serial0.fileType = "pipe" serial0.fileName = "/tmp/serial" serial0.tryNoRxLoss = "FALSE" serial0.pipe.endPoint = "client" |
표 2 serial0.present = "TRUE" serial0.fileType = "pipe" serial0.fileName = "/tmp/serial" serial0.tryNoRxLoss = "FALSE" serial0.pipe.endPoint = "server" |
표 3 bcdedit.exe /debug {current} on bcdedit /dbgsettings serial debugport:1 baudrate:115200 |
참고
'Reversing' 카테고리의 다른 글
[x64dbg] Enable Ignored Exception (0) | 2020.04.01 |
---|---|
[C] Streaming SIMD Extensions(SSE) API (0) | 2018.08.01 |
[Windows] RecDec IDA Plugin 설치 (0) | 2018.06.22 |
[IDA plugin] Diaphora (0) | 2018.06.18 |
windbg pykd 설치 (0) | 2018.06.18 |