Atelier 3 : Simulation et Analyse de BSOD

Jour 1 - Durée : 2 heures - VA CRASHER VOTRE VM

Objectif

Apprendre à provoquer (de manière contrôlée), capturer et analyser un Blue Screen of Death (BSOD) - compétence critique pour le dépannage avancé.

AVERTISSEMENT IMPORTANT

Cet atelier va volontairement crasher votre VM. C'est normal et attendu. Assurez-vous d'avoir créé un point de contrôle avant de continuer.

POINT DE CONTRÔLE OBLIGATOIRE

Avant de continuer, créez un point de contrôle :

  1. Dans Hyper-V, clic droit sur votre VM > Point de contrôle
  2. Nommez-le : 03-Avant-BSOD-Lab
  3. Attendez la confirmation

Étape 1 : Téléchargement et Installation des Outils

1.1 Télécharger NotMyFault (Sysinternals) :

# Créer un dossier pour les outils Sysinternals New-Item -Path "C:\LabEDST\Tools\Sysinternals" -ItemType Directory -Force # Télécharger Sysinternals Suite (contient NotMyFault) # Méthode 1 : Via navigateur # Allez sur : https://download.sysinternals.com/files/SysinternalsSuite.zip # Téléchargez et extrayez dans C:\LabEDST\Tools\Sysinternals # Méthode 2 : Via PowerShell (si disponible) $url = "https://download.sysinternals.com/files/SysinternalsSuite.zip" $output = "C:\LabEDST\Tools\Sysinternals.zip" Invoke-WebRequest -Uri $url -OutFile $output # Extraire Expand-Archive -Path $output -DestinationPath "C:\LabEDST\Tools\Sysinternals" -Force

1.2 Télécharger BlueScreenView (NirSoft) :

# Créer un dossier pour BlueScreenView New-Item -Path "C:\LabEDST\Tools\BlueScreenView" -ItemType Directory -Force # Via navigateur : https://www.nirsoft.net/utils/bluescreenview.zip # Téléchargez et extrayez dans C:\LabEDST\Tools\BlueScreenView # OU via PowerShell $url = "https://www.nirsoft.net/utils/bluescreenview.zip" $output = "C:\LabEDST\Tools\BlueScreenView.zip" Invoke-WebRequest -Uri $url -OutFile $output # Extraire Expand-Archive -Path $output -DestinationPath "C:\LabEDST\Tools\BlueScreenView" -Force

1.3 Vérifier les outils :

# Vérifier que NotMyFault est présent Test-Path "C:\LabEDST\Tools\Sysinternals\notmyfault.exe" Test-Path "C:\LabEDST\Tools\Sysinternals\notmyfaultc.exe" # Vérifier que BlueScreenView est présent Test-Path "C:\LabEDST\Tools\BlueScreenView\BlueScreenView.exe"

Étape 2 : Configuration du Système pour Capturer les Crashdumps

Avant de provoquer un BSOD, configurons Windows pour créer des minidumps (fichiers de diagnostic du crash).

1. Vérifier la configuration actuelle :

# Afficher les paramètres de dump mémoire Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"

Notez les valeurs de :

2. Configurer pour capturer les minidumps (normalement déjà configuré) :

# S'assurer que les minidumps sont activés Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Name "CrashDumpEnabled" -Value 3 -Type DWord # S'assurer que le dossier minidump existe New-Item -Path "C:\Windows\Minidump" -ItemType Directory -Force # Définir le dossier minidump Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Name "MinidumpDir" -Value "%SystemRoot%\Minidump" -Type ExpandString # Vérifier la configuration Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"

Types de dumps :

  • Complete Memory Dump (1) : Tout le contenu de la RAM (~8 Go dans notre VM)
  • Kernel Memory Dump (2) : Mémoire utilisée par le kernel uniquement (~300-400 Mo)
  • Small Memory Dump/Minidump (3) : Informations minimales (~256 Ko) - Recommandé

Étape 3 : Lancer NotMyFault et Provoquer un BSOD

DERNIÈRE CHANCE - Sauvegardez tout travail ouvert !

Nous allons maintenant crasher volontairement le système.

1. Lancer NotMyFault en tant qu'Administrateur :

# Naviguer vers le dossier cd C:\LabEDST\Tools\Sysinternals # Lancer l'interface graphique .\notmyfault.exe

2. Interface de NotMyFault :

L'application s'ouvre avec plusieurs options de crash. Nous allons utiliser l'option la plus simple et sûre.

3. Provoquer le BSOD :

BOOM ! Votre écran devient immédiatement bleu avec le message :

:( Your PC ran into a problem and needs to restart. We're just collecting some error info, and then we'll restart for you. X% complete If you'd like to know more, you can search online later for this error: DRIVER_IRQL_NOT_LESS_OR_EQUAL Stop code: 0x000000D1

4. Observer le processus :

Étape 4 : Vérifier que le Minidump a été Créé

Après le redémarrage :

1. Vérifier la présence du minidump :

# Lister les minidumps Get-ChildItem "C:\Windows\Minidump" | Sort-Object LastWriteTime -Descending | Select-Object -First 5 Name, LastWriteTime, Length # Copier le dernier minidump dans notre dossier de lab $lastDump = Get-ChildItem "C:\Windows\Minidump" | Sort-Object LastWriteTime -Descending | Select-Object -First 1 Copy-Item $lastDump.FullName -Destination "C:\LabEDST\Logs\" -Force Write-Host "Minidump copié vers: C:\LabEDST\Logs\$($lastDump.Name)" -ForegroundColor Green

2. Vérifier les événements système :

# Chercher l'événement de BSOD dans le journal Système Get-EventLog -LogName System -EntryType Error -Newest 10 | Where-Object {$_.EventID -eq 1001 -or $_.Source -like "*BugCheck*"} | Format-List TimeGenerated, EntryType, Source, EventID, Message

Vous devriez voir un événement Event ID 1001 (BugCheck) avec les détails du crash.

Étape 5 : Analyse du Crashdump avec BlueScreenView

5.1 Lancer BlueScreenView :

C:\LabEDST\Tools\BlueScreenView\BlueScreenView.exe

5.2 Interface de BlueScreenView :

L'outil s'ouvre et charge automatiquement tous les minidumps trouvés.

Partie supérieure : Liste des BSOD

Partie inférieure : Détails du crash sélectionné

5.3 Analyser le crash NotMyFault :

1. Identifier le pilote fautif :

2. Examiner le Bug Check :

3. Analyser les drivers dans la pile :

4. Exporter le rapport :

Étape 6 : Comprendre les Codes Stop Courants

Maintenant que vous savez analyser un BSOD, voici les codes stop les plus fréquents :

Code Stop Nom Cause Typique Action
0x000000D1 DRIVER_IRQL_NOT_LESS_OR_EQUAL Pilote accédant mal à la mémoire Mettre à jour/remplacer le pilote identifié
0x0000007E SYSTEM_THREAD_EXCEPTION_NOT_HANDLED Exception non gérée dans un thread système Vérifier pilotes, vérifier mémoire RAM
0x0000007F UNEXPECTED_KERNEL_MODE_TRAP Erreur matérielle ou overclocking Tester RAM, vérifier températures, désactiver OC
0x0000009F DRIVER_POWER_STATE_FAILURE Pilote ne répondant pas à une requête d'alimentation Pilote de périphérique défaillant, souvent réseau ou USB
0x000000A5 ACPI_BIOS_ERROR Erreur BIOS ACPI Mettre à jour le BIOS/UEFI
0x000000C2 BAD_POOL_CALLER Erreur d'allocation mémoire du pool kernel Pilote corrompu ou malware
0x000000F4 CRITICAL_OBJECT_TERMINATION Processus système critique terminé Corruption système, malware, ou défaillance matérielle
0x00000050 PAGE_FAULT_IN_NONPAGED_AREA Accès à une adresse mémoire invalide RAM défectueuse ou pilote corrompu

Étape 7 : Simulation de Diagnostic en Entreprise

Scénario réaliste : Un utilisateur vous contacte : "Mon PC a planté avec un écran bleu hier. Que s'est-il passé ?"

Votre démarche :

  1. Se connecter à distance au PC (ou accès physique)
  2. Vérifier la présence de minidumps :
    Get-ChildItem "C:\Windows\Minidump" | Sort-Object LastWriteTime -Descending
  3. Si aucun minidump : Vérifier la configuration
    Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
  4. Analyser le dernier minidump avec BlueScreenView (ou WinDbg pour analyse avancée)
  5. Identifier le pilote fautif :
    • Si c'est un pilote tiers : Vérifier les mises à jour du pilote sur le site du fabricant
    • Si c'est un pilote Microsoft : Vérifier Windows Update
    • Si c'est ntoskrnl.exe : Problème plus complexe (corruption système, RAM défectueuse)
  6. Actions correctives :
    • Mettre à jour le pilote identifié
    • Si récurrent : Utiliser Driver Verifier pour test approfondi
    • Si lié au matériel (ex: RAM) : Lancer un test mémoire
    • Documenter dans le ticket avec le fichier minidump et l'analyse
  7. Suivi :
    • Surveiller si le problème se reproduit
    • Si oui : Investigation plus poussée (WinDbg, tests matériels)

Question d'Atelier 13

Vous analysez un minidump et identifiez que le pilote nvlddmkm.sys a causé un BSOD avec le code 0x000000D1.

  • a) À quel fabricant appartient ce pilote ? (Indice : nv = ...)
  • b) Quel type de matériel ce pilote contrôle-t-il ?
  • c) Quelles seraient vos 3 premières actions pour résoudre ce problème ?
Réponse attendue

a) Fabricant : NVIDIA (nv = NVIDIA)

b) Type de matériel : Carte graphique NVIDIA (pilote d'affichage)

c) 3 actions pour résolution :

  1. Mettre à jour le pilote graphique NVIDIA :
    • Aller sur nvidia.com/drivers
    • Télécharger la dernière version stable (pas beta)
    • Désinstaller l'ancienne version avec DDU (Display Driver Uninstaller) si nécessaire
    • Installer la nouvelle version
  2. Vérifier les températures et la stabilité GPU :
    • Utiliser GPU-Z ou HWInfo
    • Vérifier que le GPU ne surchauffe pas (>85°C)
    • Vérifier l'overclocking (réinitialiser aux valeurs d'usine)
  3. Tester la RAM vidéo :
    • Utiliser un outil comme OCCT ou MemtestG80
    • Si erreurs détectées : problème matériel (RMA de la carte graphique)

Actions supplémentaires si échec :

  • Rollback vers une version antérieure stable du pilote
  • Désactiver hardware acceleration dans les applications problématiques
  • Vérifier l'alimentation (PSU suffisante pour le GPU)
  • Tester la carte graphique sur un autre PC

Étape 8 : Nettoyage et Restauration

1. Désinstaller le pilote NotMyFault (pour éviter des crashs accidentels futurs) :

# Vérifier si le pilote est chargé Get-WmiObject Win32_SystemDriver | Where-Object {$_.Name -like "*notmyfault*"} # Supprimer les fichiers Remove-Item "C:\LabEDST\Tools\Sysinternals\notmyfault.sys" -Force -ErrorAction SilentlyContinue Remove-Item "C:\LabEDST\Tools\Sysinternals\notmyfaultc.sys" -Force -ErrorAction SilentlyContinue

2. Archiver les minidumps pour référence future :

# Créer une archive $archiveName = "BSOD-Lab-$(Get-Date -Format 'yyyyMMdd-HHmm').zip" Compress-Archive -Path "C:\Windows\Minidump\*" -DestinationPath "C:\LabEDST\Backups\$archiveName" Write-Host "Minidumps archivés dans: C:\LabEDST\Backups\$archiveName" -ForegroundColor Green

Compétences Validées - Atelier BSOD :

Points Clés à Retenir :

  1. Les BSOD sont causés par des erreurs au niveau kernel (souvent pilotes)
  2. Les minidumps contiennent les informations nécessaires au diagnostic
  3. BlueScreenView est un outil simple et efficace pour une première analyse
  4. Le pilote identifié comme "Caused By" est généralement le coupable
  5. Les codes stop donnent des indices sur le type de problème
  6. En entreprise, toujours documenter les BSOD et les actions correctives