Un pantallazo azul a lo contrario de la creencia popular es una parada ordenada que el sistema realiza ante un problema grave que sucede en modo kernel. Todos los sistemas operativos que se basan en kernels monolíticos, comparten el mismo espacio de memoria. (por ejemplo los dispositivos y aplicaciones básicas del sistema) y cuando se produce un fallo que puede alterar la memoria, el sistema manda una orden de parada al procesador, antes de que ocurra un fallo más grave.
Si en contra se produce un fallo en un proceso de usuario, al utilizar memoria compartida provoca el famoso 'casque' de la aplicación sin que se corrompa la memoria, tan solo se puede producir la perdida de datos de esa aplicación.
En el caso de que sea una pantalla azul y cuando se produce un error de estas caracteristicas normalmente se crea un fichero que se llama memory.dmp, el cual contiene información muy valiosa, desde que error lo ha provocado hasta los procesos y aplicaciones que estaban en uso.
Para que un sistema Windows, muestre información ante una parada del sistema hay que configurarlo previamente, en la pantalla sistema.
La información que podemos configurar son las siguientes:
- Volcado de memoria completo: Vuelca todo el espacio de memoria sobre disco
- Volcado de memoria del Kernel: Solo se vuelca el espacio de memoria del kernel. El fichero se almacena por defecto en %Systemroot%
- Volcado pequeño de memoria: Solo almacena la información mínima indispensable Se almacenan en la carpeta %SystemRoot%\Minidump
EL ENTORNO DE PRUEBAS Para analizar este fichero precisamos montar un entorno de prueba utilizando diversas herramientas, entre ellas el entorno de depuración de windows y su utilidad WINDBG
Vamos a comenzar primero con la instalación. Primero nos descargamos las librerias de simbolos
http://www.microsoft.com/whdc/devtoo...mbolpkg.mspx#d
A continuación las tools
http://www.microsoft.com/whdc/devtoo...tallx86.mspx#a
Seguidamente configuramos 'MiPc' para obtener un volcado completo de la memoria tal y como muestra la imagen.
[IMG]file:///tmp/moz-screenshot-1.jpg[/IMG] [IMG]file:///tmp/moz-screenshot.jpg[/IMG] Por ultimo vamos a provocar un pantallazo azul utilizando la utilidad gratuita 'NotMyfault.exe' de Marck Russinovich (sysinternals). La ejecutamos y disponemos de una preciosa pantalla azul, cuando finalice el volcado de memoria (esta creando el memory.dmp) reiniciamos la máquina y ejecutamos el Windbg, Lo configuramos para que incluya los simbolos del sistema que estan (instalados anteriormente) en c:\Windows\symbols.
Abrimos el fichero desde 'Open crash dump' y ya tenemos en marcha el entorno de depuración.
Bueno, ahora vamos a ver los comandos que se pueden introducir en una consola de depuración.
Para mostrar la versión de sistema: vertarget
Listar los modulos: x *!
Para mostrar información del fallo: !analyze -v
Para obtener los procesos que se estaban ejecutando hay que poner el siguiente comando:
!process 0 0Otra forma es poniendo: !dml_proc
Esta forma es la más intuitiva y funcional ya que podemos navegar por el proceso y obtener información del fallo, así como listar las direcciones de memoria y registros a punteros
Listar los procesos por sesión: !process /s 0 0
Información de sesiones: !session y !logonsession 0
Listar los módulos cargados: lm, lm t n
Estado de la memoria: !vm y !memusage
Causar un volcado completo de memoria:: .dump.crash
Forzar un reinicio (frio) del equipo: .reboot
Más información en:
http://www.software.rkuster.com/windbg/cmd.htm
agradecmientos a Pedro Sánchez por su aporte
Saludos....
No hay comentarios:
Publicar un comentario