sh711 님의 블로그

Windbg 윈도우 커널 분석 - 1 본문

Study/Windows

Windbg 윈도우 커널 분석 - 1

sh711 2025. 3. 10. 21:23

Windbg를 통해 프로그램 분석을 해보았다.
이번엔 Windbg로 윈도우 커널 분석을 해보겠다
 

1. 환경 구성

Windows 10 1809 English 64-bit [17763.107] 버전을 가상화하였다.
OS : Windows 10 1809 버전
Kernel : 10.0.17763.107 버전

 

2. KDNET을 통한 자동 디버깅 설정

VM setting에서 Briged 모드로 변환해준다.

이어서 로컬과 Guest 모두 네트워크 방화벽 끄기

 
https://developer.microsoft.com/ko-kr/windows/downloads/windows-sdk/

 

Windows SDK - Windows 앱 개발

Windows 11용 Windows SDK에는 Windows에서 실행되는 앱을 만들 때 사용할 수 있는 헤더, 라이브러리 및 도구가 포함되어 있습니다.

developer.microsoft.com

위 링크에서 Windows SDK 를 설치한다

 
설치가 완료되면 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 경로에 kdnet.exe 파일과 VerifiedNICList.xml 파일을 Guest OS의 C:\ 경로에 복사해준다

 
cmd 를 관리자 권한으로 실행 후 kdnet 파일 실행 시 현재 랜카드가 네트워크 디버깅이 가능한지 알려준다.

 
이어서, kdnet.exe [Host IP] [port(50000 ~ 50039)]로 네트워크 디버깅을 설정해준다.
그러면 key 값이 나오는데 이 키 값을 저장해놓는다.

 
이제 Host PC에서 Windbg에서 포트와 키 값 입력 후  OK를 눌러 연결을 기다린다

 
Guest OS 재부팅 시 연결이 되는데 자꾸 네트워크 에러가 나면서 연결이 되지 않았다

 
문제는 VM의 네트워크를 Bridged로 해놔서 그랬다.
NAT로 해주니까 네트워크 에러 없이 정상적으로 attach가 됬다

 
serial port 보단 빠른 것 같다

 

3. serial port를 통한 커널 디버깅

kdnet이 안돼서 안정적인 serial port 방식으로 진행하기로 하였다. 원래 하드웨어적 연결이 있어야 하지만 VM에서는 serial port를 지원해준다.
Guest OS settings 에서 serial port를 add 해주고 다음과 같이 설정한다 

 
재부팅 후 cmd에서 다음 명령들을 입력해준다.

bcdedit /debug on
bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200		// DEBUGPORT는 serial port [숫자]

 
이제 로컬에서 [COM]에서 serial port에 입력한대로 입력 후 OK

 
Guest OS 재부팅 시 커널에 attach된것을 확인할 수 있다

break 시 디버깅이 가능하다

'Study > Windows' 카테고리의 다른 글

Windows Kernel Driver Load  (0) 2025.03.14
windows API 프로그래밍  (0) 2025.03.13
Windbg 프로그램 분석  (0) 2025.03.08