시스템 커널 단에 접근하거나 드라이버를 후킹하고, 보안 모듈을 붙이는 작업을 진행하다 보면 이런 생각이 듭니다.
“이 작업, 잘못 붙였다간 블루스크린(BSOD) 뜨는 거 아닌가요?”
실제로 커널 단 작업은 단 하나의 실수만으로도 시스템이 멈추거나 부팅이 불가능해질 수 있습니다. 그렇기 때문에 많은 개발자들이 가상머신(Virtual Machine, VM)을 사용하여 테스트를 진행합니다.
제 메인 PC가 무너지면 저의 하루는 끝이기 때문입니다.
제가 진행하는 작업은 운영체제 깊숙한 곳, 즉 커널 레벨까지 접근하는 작업입니다.
예를 들어 드라이버를 설치하거나, 보안 소프트웨어처럼 시스템 콜을 가로채는 코드들은 예외 처리 한 줄이 누락되면 블루스크린이 발생할 수 있습니다.
이러한 위험을 안전하게 분리된 공간에서 테스트할 수 있는 유일한 방법이 가상머신을 사용하는 것입니다.
가상머신 종류 | 설명 | 장점 | 단점 |
---|---|---|---|
VMware Workstation | Windows 기반 데스크탑 가상화 솔루션 | 안정성 우수, 스냅샷 기능, 장치 연결 뛰어남 | 상용(유료), 무겁고 리소스 많이 소모함 |
VirtualBox | Oracle 제공 오픈소스 가상머신 | 무료, 가볍고 빠름, 다양한 OS 지원 | GUI 불편, 드라이버 충돌 빈번, 3D 가속 취약 |
Hyper-V | Windows Pro 이상에 내장된 가상화 도구 | Windows에 통합, 성능 우수, 스냅샷 가능 | 설정 복잡, USB 직결 어렵고 일부 OS에서 오류 발생 |
QEMU + KVM | Linux 기반 고성능 가상화 솔루션 | 고성능, 자동화에 적합, 오픈소스 | CLI 중심, 설정 복잡, GUI 환경 구축 필요 |
Parallels | macOS 전용 상용 가상머신 | macOS 호환 우수, 부드러운 UX | 유료, mac 전용, 고급 설정 제한 |
제가 VMware를 선택한 이유는 다음과 같습니다.
.exe
파일을 실행하여 기본값으로 설치하였습니다.DriverTest_VM
으로 지정하였고, 저장 위치는 SSD 드라이브로 설정하였습니다.bcdedit /set testsigning on
명령어로 테스트 서명 모드를 활성화하였습니다. 이 명령은 테스트용 드라이버를 설치하거나 커널 레벨 코드를 실행할 수 있게 해줍니다. ⚠️ 명령 실행 후에는 가상머신을 재부팅해야 적용됩니다. (실제 PC는 절대 재부팅 금지!)가상머신은 단순히 보조적인 개발 도구가 아닙니다.
실수해도 안전하게 복구할 수 있는 실험실이자, 시스템 개발의 생명선입니다.
특히 커널 단 드라이버를 테스트하거나, 시스템 레벨에서 작동하는 후킹 또는 보안 코드를 개발하실 때는 반드시 가상머신에서 진행하시는 것을 추천드립니다.
그중에서도 VMware Workstation은 안정성, 편의성, 확장성 면에서 강력한 선택지였습니다.