Comment provoquer un BSOD sur Windows XP et des versions plus récentes?

Existe-t-il un moyen de provoquer par programme une BSOD sur Windows XP et des versions plus récentes? Comment?

D'accord pour clarifier, ce n'est pas à des fins malveillantes. Le client a demandé de pouvoir arrêter / redémarrer un terminal sur son LAN de cette façon. Quand j'ai demandé pourquoi, ils ont dit parce que c'est plus rapide qu'un redémarrage normal … 🙂

(Je suis curieux de savoir quelle partie de «par programme» les personnes ne comprennent pas qui ont migré vers Super User. Duh.)

Le (s) conducteur (s) du clavier peuvent être informés pour provoquer un BSOD:

HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters 

Ou (pour les claviers PS / 2 anciens)

 HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters 

Et là, réglez un REG_DWORD nommé CrashOnCtrlScroll sur 1 .

Après le prochain redémarrage, vous pouvez forcer l'écran bleu par Ctrl + ScrollLk + ScrollLk . Le code de vérification des bogues sera dans ce cas de 0xE2 (MANUALLY_INITIATED_CRASH).

Si vous voulez vraiment une méthode programmée, vous devez trouver un trou dans un pilote sur cette machine ou écrire et installer un pilote simpliste qui appelle KeBugCheck ou KeBugCheckEx .

S'amuser 😉

Note latérale: il peut être très utile de provoquer délibérément un crash comme celui-ci pour les écrivains de conducteurs ou même lorsqu'il s'agit de logiciels malveillants. Si vous avez configuré votre système pour créer un vidage de mémoire complet, vous aurez une image du système en cours d'exécution qui pourra être analysée plus avant. Considérez des cas comme une impasse où un débogueur ne l'aide pas nécessairement dans tous les cas.

Je ne sais pas exactement comment le provoquer, mais je crois en Vista et 7, il par défaut arrêter la panne du système et ne pas afficher le BSOD.

Généralement, un BSOD se produit lorsque quelque chose se passe horriblement dans le système d'exploitation ou le matériel. Faire en sorte que quelque chose soit mal dans l'un ou l'autre de ceux qui sont en dehors d'eux est, en soi, plutôt difficile, car les auteurs de systèmes d'exploitation et les fournisseurs de matériel n'apprécient pas les ingénieurs de logiciels défectueux qui rendent leurs produits mal et ruinent l'expérience de leurs utilisateurs.

L'écriture d'un pilote est l'une des quelques façons de se rapprocher du système d'exploitation et du matériel et de provoquer une telle erreur. Bien sûr, l'installation d'un tel pilote n'est pas quelque chose que vous faites généralement sans connaissance approfondie et privilèges administratifs, donc utiliser cela à des fins malveillantes s'avère plutôt difficile. Avec ce type d'accès, vous pourriez faire beaucoup plus de mal sans un BSOD ou un tel moyen.

Un BSOD est une panique de kernel. Cela signifie une partie du noyau, le noyau même du système d'exploitation a quelque chose de vraiment mauvais. Il a peut-être griffonné la mémoire, c'est peut-être un code exécuté qu'il ne devrait pas avoir. Par programme, vous devriez obtenir un code dans l'espace du noyau, puis déclencher un déclencheur sur demande. Un peu risqué pour un serveur prod.

Les machines Windows normales ont beaucoup d'état dans les processus et dans le noyau. Quel que soit le nettoyage que vous devez conserver pour que l'état soit cohérent, vous l'avez simplement court-circuité.

Plus précisément, un BSOD est (habituellement) un bogue de noyau (ou pilote), le noyau est dans un mauvais état, si mauvais qu'il se sent qu'il ne peut pas nettoyer et préfère redémarrer, perdre quel que soit son état juste parce qu'il ne fonctionne pas Savoir ce qui est bon et ce qui est mauvais. Tous les tampons ne peuvent pas être vidés sur le (s) disque (s). Ensuite, il essaiera de nettoyer au redémarrage, mais il a perdu beaucoup de contexte lors de l'arrêt / de la panique, de sorte qu'il s'agira d'un nettoyage prudent, de la panique à travers les bons et les mauvais résidus.

Ainsi, certains de vos avantages lors de l'arrêt sont en cours de démarrage, car maintenant, il faut savoir où il a eu des jambes coupées hors de lui-même. Il doit exécuter chkdsk et nettoyer tous les blocs de disque qui se trouvaient dans un état d'écriture partiel. Les disques USB cachent beaucoup. Vous pouvez désactiver la mise en cache qui rendrait moins susceptible de perdre des données lors d'un accident, mais la mise en cache entraîne une certaine vitesse. Quels fichiers souhaitez-vous perdre?

Bref, c'est une mauvaise idée. Toute machine de production qui s'est produite peut être dans un état instable même après le nettoyage. C'est mauvais.

Je dirais simplement de prendre le coup d'arrêt et de redémarrer. Vous perdrez les économies de temps que vous pensez avoir la première fois que vous devez reconstruire le serveur car il ne démarrera pas ou vos programmes ne peuvent pas démarrer.

Il faut mentionner que le fait de tuer le processus csrss.exe rendrait BSOD. Mais pas sur les nouveaux Windows (8, 8.1).