Analizar volcados de memoria con WinDbg

A raíz de del incidente de CrowdStrike Falcon algunas de las preguntas habituales sobre este EDR (Endpoint Detection and Response), se centraron en como diagnosticar que había provocado el pantallazo azul (BSOD)…

La propia Microsoft facilita la aplicación WinDbg en Windows Store, una aplicación completa y extensa, que desde 2017 se ha ido actualizando constantemente pero veamos unas nociones básicas para, por lo menos, orientar hacía donde puede estar el origen de un pantallazo azul.

Después de instalar la aplicación, iremos a «File> Settings > Debugging settings» junto a la opción «Default symbol path» añadiremos el texto:

srv*https://msdl.microsoft.com/download/symbols
settings sobre WinDbg

De este modo se añaden los «archivos de símbolos» de Microsoft, estos datos no son necesarios para ejecutar los binarios pero si son útiles para depurar, en el caso de necesitar hacerlo en modo kernel se necesitan los símbolos para el controlador que se está depurando además de los públicos de Windows. Por ejemplo, podremos ver los nombres de variables, funciones… que ayudan en el proceso básico.

Si nuestro equipo ha sufrido un pantallazo azul se realiza volcado de memoria antes de reiniciar, pueden existir varias rutas al fichero pero habitualmente:

%SystemRoot%\MEMORY.DMP
%SystemRoot%\minidump\minidump.dmp

Desde «Configuración > Sistema > Información > Configuración Avanzada del sistema» accedemos a las «Opciones Avanzadas > Inicio y recuperación (Configuración)» donde podemos seleccionar el tipo de volcado y la ruta predeterminada:

windows_dump_config sobre WinDbg
La mezcla de opciones del Panel de Control antiguo en Windows 11 todavía se escoden en la interfaz…

Deberás abrir con permisos de administrador WinDdg si el fichero se encuentra en el directorio del sistema, puedes copiar el fichero de otro equipo en cualquier ruta igualmente y desde «File > Open dump file» abrimos el archivo de volcado de memoria.

Las tareas de depuración de este tipo son complejas, pero vamos a ver el proceso inicial más sencillo. Una vez abierto el fichero de volcado, podemos analizarlo pulsando sobre «!analize -v» o escribiendo este mismo comando junto a «kd >»

analyze sobre WinDbg

Aquí es donde empezamos a obtener pistas, vamos a ver dos ejemplos de pantallazos azules provocados por dos problemas diferentes:

crash_usb_sandisk sobre WinDbg
USB Sandisk
crash_amdkmdag_sys sobre WinDbg
GPU AMD

No hemos entrado en los detalles de cada uno de estos pantallazos, pero por lo menos podemos ver por donde seguir investigando, en la parte izquierda se muestra un ejemplo de error provocado por una unidad USB de Sandisk y en la parte derecha otro iniciado por errores en la tarjeta gráfica de AMD

Junto al análisis y los ficheros implicados podemos encontrar información adicional, en el caso del USB:

DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000004, The power transition timed out waiting to synchronize with the Pnp
	subsystem.
Arg2: 000000000000012c, Timeout in seconds.
Arg3: ffffa48f63e50040, The thread currently holding on to the Pnp lock.
Arg4: ffffb68d470d7180, nt!TRIAGE_9F_PNP on Win7 and higher

Relacionado: Análisis de David Weston sobre el incidente de CrowdStrike

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *