Existe-t-il un moyen de provoquer par programme un BSOD sur Windows XP et les versions plus récentes? Comment?
BTW juste 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 répondu parce que c'est plus rapide qu'un redémarrage normal ... :)
(Je suis curieux de savoir dans quelle partie du programme ces personnes ne comprennent pas qui a migré vers Super User. Duh.)
Réponses:
Le ou les pilotes de clavier peuvent provoquer un BSOD:
ou (pour les claviers PS / 2 plus anciens)
Et il y a mis un
REG_DWORD
nomméCrashOnCtrlScroll
à1
.Après le prochain redémarrage, vous pouvez forcer l'écran bleu de Ctrl+ ScrollLk+ ScrollLk. Le code de vérification des bogues sera dans ce cas 0xE2 (MANUALLY_INITIATED_CRASH).
Si vous voulez vraiment une méthode programmatique, vous devez trouver un trou dans un pilote sur cette machine ou écrire et installer un pilote simpliste qui appelle soit
KeBugCheck
ouKeBugCheckEx
.S'amuser ;)
Note: il peut être très utile de provoquer délibérément un crash comme celui-ci pour les rédacteurs de pilotes 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 alors une image du système en cours d'exécution qui peut être analysée plus en détail. Considérez des cas comme un blocage où un débogueur n'aide pas nécessairement dans tous les cas.
la source
Essayez NotMyFault!
http://technet.microsoft.com/en-us/sysinternals/bb963901
la source
Je ne sais pas exactement comment le provoquer, mais je crois que dans Vista et 7, il se ferme par défaut en cas de défaillance du système et ne montre pas le BSOD.
la source
Généralement, un BSOD se produit lorsque quelque chose se passe horriblement mal dans le système d'exploitation ou le matériel. Faire en sorte que quelque chose ne va pas chez l'un ou l'autre d'entre 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 que les mauvais ingénieurs logiciels rendent leurs produits mauvais et ruinent l'expérience de leurs utilisateurs.
L'écriture d'un pilote est l'une des rares façons de se rapprocher suffisamment 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 connaissances utiles et privilèges administratifs, donc l'utiliser à des fins malveillantes s'avère plutôt difficile. Avec ce type d'accès, vous pourriez faire beaucoup plus de mal sans BSOD ou un tel moyen de contournement.
la source
Un BSOD est une panique du noyau. Cela signifie qu'une partie du noyau, le cœur même du système d'exploitation a fait quelque chose de vraiment mauvais. Il s'agit peut-être d'une mémoire gribouillée, d'un code exécuté qu'il ne devrait pas avoir. Par programme, vous devez obtenir du code dans l'espace du noyau, puis le déclencher d'une manière ou d'une autre à la 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 dont vous avez besoin pour maintenir l'état cohérent, eh bien vous venez de le court-circuiter.
Plus précisément, un BSOD est (généralement) un bug du noyau (ou du pilote), le noyau est dans un mauvais état, si mauvais qu'il a l'impression qu'il ne peut pas être nettoyé et qu'il préfère redémarrer, perdant tout bon état qu'il a juste parce qu'il ne le fait pas savoir ce qui est bon et ce qui est mauvais. Aucun tampon n'a pu être vidé sur le (s) disque (s). Ensuite, il essaiera de nettoyer au redémarrage, mais il a perdu beaucoup de contexte à l'arrêt / panique, donc ce sera un nettoyage conservateur, devant choisir les bons et les mauvais restes de la panique.
Ainsi, certains de vos avantages à l'arrêt ont disparu au démarrage, car il doit maintenant déterminer où il a obtenu ses jambes coupées de dessous lui-même. Il doit exécuter chkdsk et nettoyer tous les blocs de disque qui étaient en état d'écriture partielle. Les disques USB mettent beaucoup en cache. Vous pouvez désactiver la mise en cache, ce qui rendrait moins probable la perte de données en cas de panne, mais la non-mise en cache enlève une certaine vitesse. Quels fichiers êtes-vous prêt à perdre?
Bref, c'est une mauvaise idée. Toute machine de production dans laquelle cela se produit peut être dans un état instable même après le nettoyage. C'est mauvais.
Je dirais juste de prendre le coup d'arrêt et de redémarrer. Vous perdrez le gain de temps que vous pensez obtenir la première fois que vous devez reconstruire le serveur car il ne démarre pas ou vos programmes ne peuvent pas démarrer.
la source
Je dois mentionner que tuer le processus csrss.exe ferait BSOD. Mais pas sur les derniers Windows (8, 8.1).
la source
STATUS_SYSTEM_PROCESS_TERMINATED
), btw.L'extrait de code de https://www.mpgh.net/forum/showthread.php?t=1100477 fonctionne sous Windows 10.17134
Il ne semble pas y avoir de trace dans le journal des événements. Il y aura sûrement par une trace dans le minidump cependant?
la source