Windows 커널 & 드라이버 시리즈 — 8화
bcdedit /set testsigning on
bcdedit /debug on
bcdedit /dbgsettings net hostip:<호스트_IP> port:50000 key:1.2.3.4
개발 환경 구축 — WDK 설치부터 첫 드라이버 빌드까지
드라이버 개발에서 환경 구축이 첫 번째 관문이에요. 설치 순서를 잘못 맞추거나 버전이 안 맞으면 빌드 오류부터 막히거든요. 이번 화에서는 시행착오 없이 환경을 구축할 수 있도록 순서대로 안내해드릴게요. 그리고 마지막에는 VM에서 드라이버를 실행해보는 것까지 해볼 거예요.
필요한 것들 한눈에 보기
- 호스트 PC — 개발 도구 설치, 코드 작성, 빌드
- 타겟 VM — 드라이버를 실제로 로드하고 테스트하는 환경 (VirtualBox, VMware, Hyper-V 모두 가능)
- Visual Studio 2022 — 코드 에디터 + 빌드 도구
- WDK (Windows Driver Kit) — 드라이버 개발용 헤더, 라이브러리, 빌드 템플릿
- WinDbg Preview — 커널 디버거 (Microsoft Store에서 무료)
⚠️ 절대 본 PC에서 드라이버 테스트하지 마세요
드라이버에 버그가 있으면 BSOD가 발생해요. VM에서는 그냥 VM이 재시작되면 그만이지만, 본 PC라면 작업 중인 파일이 날아갈 수 있습니다. VM 환경은 선택이 아니라 필수예요.
Step 1: Visual Studio 2022 설치
1
Visual Studio 2022 Community 다운로드
visualstudio.microsoft.com에서 Community 버전을 무료로 받을 수 있어요.
2
설치 시 워크로드 선택
"C++를 사용한 데스크톱 개발" 워크로드를 반드시 선택하세요. WDK 설치 후 드라이버 템플릿이 여기에 추가됩니다.
3
설치 확인
설치 후 VS를 열고 "새 프로젝트"에서 C++ 프로젝트가 잘 뜨는지 확인해요.
Step 2: WDK 설치
WDK와 Windows SDK는 버전이 일치해야 해요. Microsoft 공식 문서의 WDK 다운로드 페이지에 가면 매칭되는 버전 조합을 안내해줍니다.
1
Windows SDK 먼저 설치
learn.microsoft.com/windows/apps/windows-app-sdk 에서 최신 Windows SDK를 설치합니다. Visual Studio 설치 시 같이 설치되었을 수도 있어요.
2
WDK 설치
learn.microsoft.com/windows-hardware/drivers/download-the-wdk 에서 SDK 버전과 일치하는 WDK를 설치합니다. 설치 마지막 단계에서 Visual Studio Extension도 함께 설치됩니다 — 이걸 빠뜨리면 VS에서 드라이버 프로젝트 템플릿이 안 뜨니 꼭 확인하세요.
3
설치 확인
Visual Studio를 재시작하고 새 프로젝트에서 "Kernel Mode Driver (KMDF)"가 보이면 성공이에요.
Step 3: WinDbg Preview 설치
WinDbg Preview는 Microsoft Store에서 바로 설치할 수 있어요. 검색창에 "WinDbg"를 치면 나옵니다. 무료입니다.
💡 WinDbg vs WinDbg Preview
옛날 WinDbg(windbg.exe)도 WDK에 포함되어 있지만, WinDbg Preview가 훨씬 UI가 좋고 기능도 많아요. 특별한 이유가 없다면 Preview를 쓰세요.
Step 4: 타겟 VM 준비
VM을 준비하고 커널 디버깅이 가능하도록 설정해야 해요.
1
VM 생성
VMware Workstation, VirtualBox, Hyper-V 중 원하는 걸 쓰세요. Windows 11 또는 Windows 10 이미지를 설치합니다.
2
테스트 서명 모드 활성화
드라이버 서명 없이 로드하려면 VM의 관리자 CMD에서:
재부팅 후 화면 우측 하단에 "Test Mode" 워터마크가 뜨면 성공이에요.
3
커널 디버깅 설정 (네트워크 방식)
VM에서 아래 명령으로 네트워크 커널 디버깅을 활성화합니다:
4
호스트에서 WinDbg 연결
WinDbg Preview에서 File → Attach to kernel → Net, Port: 50000, Key: 1.2.3.4 입력 후 OK. VM을 재시작하면 연결됩니다.
Step 5: 드라이버 서비스 등록과 로드
빌드한 드라이버(.sys 파일)를 VM에 복사한 뒤, 서비스로 등록하고 로드하는 방법이에요:
# 드라이버 서비스 등록 sc create MyDriver type= kernel binPath= "C:\Drivers\MyDriver.sys" # 드라이버 시작 (로드) sc start MyDriver # 드라이버 중지 (언로드) sc stop MyDriver # 서비스 삭제 sc delete MyDriver
📌 DbgPrint()로 디버그 메시지 출력하기
드라이버 코드에서 DbgPrint("Hello from kernel!\n");를 쓰면 WinDbg 또는 DebugView(Sysinternals)에서 메시지를 볼 수 있어요. 개발 중 가장 기본적인 디버깅 수단이에요.
환경 구축 완료 체크리스트
- ☐ Visual Studio 2022 + C++ 워크로드 설치 완료
- ☐ Windows SDK 설치 완료
- ☐ WDK 설치 + VS Extension 설치 완료
- ☐ VS 새 프로젝트에서 "Kernel Mode Driver (KMDF)" 템플릿 확인
- ☐ WinDbg Preview 설치 완료
- ☐ VM 생성 + Windows 설치 완료
- ☐ VM에서 testsigning on 설정 완료
- ☐ 커널 디버깅 연결 테스트 성공
✅ 8화 요약
- 개발 환경은 호스트 PC(개발)와 타겟 VM(테스트)로 구성합니다.
- 설치 순서: Visual Studio 2022 → Windows SDK → WDK (VS Extension 포함) → WinDbg Preview
- VM에서 testsigning on을 켜야 서명 없는 드라이버를 로드할 수 있어요.
- 네트워크 커널 디버깅으로 호스트 WinDbg와 타겟 VM을 연결합니다.
다음 화 — 드라이버 개발 본격 시작!
9화 — 첫 번째 커널 드라이버 작성: Hello Kernel World →
#WDK #WinDbg #드라이버환경구축 #커널디버깅 #VM설정
'Programming > 7. Device Driver' 카테고리의 다른 글
| 드라이버 개발 핵심 - 10화 DriverEntry와 드라이버 오브젝트 (0) | 2026.05.28 |
|---|---|
| 드라이버 개발 핵심 - 9화 첫 번째 커널 드라이버 (0) | 2026.05.27 |
| Windows 아키텍처 기초 - 7화 Windows I/O 시스템 개관 (0) | 2026.05.25 |
| Windows 아키텍처 기초 - 6화 프로세스와 스레드 (0) | 2026.05.23 |
| Windows 아키텍처 기초 - 5화 페이징 메커니즘 (0) | 2026.05.22 |