Debugging Windows - Analyse d'un crashdump BSOD

Table des matières :

Introduction

Nous avons tous déja vu au moins une fois un blue screen of death (BSOD) sur Windows. Mais que se passe t’il exactement ? Ou se trouvent les informations du crash ? Comment les analyser ?

Lorsqu’une erreur critique (également appelée « erreur d’arrêt ») se produit dans Windows, le kernel rencontre une condition dans laquelle il ne peut plus fonctionner en toute sécurité. Cela peut être dû à un matériel défectueux, à un logiciel corrompu ou à des fichiers DLL manquants, entre autres raisons. Pour protéger le système, Windows arrête toutes les opérations et affiche l’écran bleu avec des informations d’erreur. Ceci est communément appelé « écran bleu de la mort » ou BSOD.

Le BSOD contient des informations importantes sur l’erreur à l’origine du crash, notamment le nom de l’erreur, son code hexadécimal et, dans certains cas, des paramètres supplémentaires répertoriés entre parenthèses. Ces détails peuvent être utilisés pour diagnostiquer et résoudre le problème.

En plus d’afficher le BSOD, Windows crée également un fichier crashdump. Ce fichier contient une image de la mémoire au moment du crash, qui peut être utilisée pour une analyse plus approfondie. Le fichier crashdump se trouve généralement dans C:\Windows\MEMORY.DMP.

Installation du Windows SDK

Pour travailler avec les kernel crashdumps de Windows, nous allons avoir besoin du logiciel WinDbg, présent dans le Software Developement Kit (SDK) de Windows:

Installation des outils

Dans un premier temps, nous allons installer les Debbuging Tools for Windows du SDK :

A la fin de l’installation, nous avons WinDbg d’installé sur la machine pour toutes les architectures supportées par Windows 10.

Configuration de WinDbg

Maintenant que nous avons WinDbg d’installé, nous devons le configurer avant d’importer un Crashdump. La première chose à configurer est la source de symboles pour le débogage. Pour cela, il faut aller dans le menu File > Symbol file path et coller cette valeur permettant d’ajouter les sources de symboles locales (cache dans C:\Windows\PDBcache) et en ligne (depuis http://msdl.microsoft.com/download/symbols):

SRV*C:\Windows\PDBcache*http://msdl.microsoft.com/download/symbols

Ce qui nous donne:

Cliquez ensuite sur OK et la source de symboles est configurée.

Chargement du dump dans WinDbg

Tout d’abord, nous devons lancer WinDbg en tant qu’Administrateur pour pouvoir lire le fichier MEMORY.DMP contenant toutes les informations récupérées au moment du crash et du Blue Screen of Death.

Ensuite nous choisissons le dump mémoire, (dans C:\Windows\MEMORY.DMP):

Analyse du crash

Maintenant que nous avons le dump mémoire chargé dans WinDbg, nous pouvons démarrer une analyse du crash:

Une fois le nous pouvons lancer une autoanalyse du crash avec !analyze -v. Ces premiers résultats d’analyse nous permettent d’avoir une idée de ce qui a causé le crash, et dans quelle librairie / fonction il s’est produit:

Références