WinPE como entorno ligero y sin estado para probar y fuzzear drivers de Windows

Fuentes: WinPE as a stateless harness for Windows driver testing and fuzzing

WinPE, el entorno mínimo de preinstalación de Windows que se distribuye con cada imagen ISO del sistema, puede reutilizarse como banco de pruebas automatizado para drivers de modo kernel (KMDF), tanto en pipelines de integración continua como en sesiones de fuzzing dinámico. Frente a una instalación completa de Windows, WinPE arranca desde un archivo WIM cargado en RAM, necesita tan solo 512 MB de memoria y carece de shell gráfico, DirectX y PowerShell, lo que elimina la sobrecarga de servicios y telemetría y reduce el tiempo de arranque a milisegundos.

El artículo detalla las modificaciones necesarias para convertir esta base en un entorno reproducible e idempotente. Se explican los ajustes del almacén BCD con bcdedit para forzar arranque limpio, ignorar fallos y desactivar VBS y HVCI (hypervisorlaunchtype off, isolatedcontext no, testsigning yes), de modo que sea posible cargar drivers sin firma digital. En el apartado de virtualización se compara la máquina q35 de QEMU con el perfil i440FX (pc), más estable para los drivers de red integrados en WinPE, y se recomienda la emulación e1000 con KDNET para depuración kernel sobre UDP, con mapeo manual mediante busparams.

También se cubre la edición offline de la imagen con DISM para integrar perfiles unattend.xml que desactiven la negociación DHCP, y la sustitución del shell estándar mediante winpeshl.ini, que permite lanzar directamente un agente de prueba en lugar de cmd.exe. El resultado es un entorno desechable, determinista y rápido, adecuado para pruebas E2E de drivers y captura inmediata de excepciones de kernel.