Si je pouvais écrire un programme utilisateur qui écraserait mon système d'exploitation J'y pensais en quelque sorte commuter mon programme d'UserMode en mode noyau et provoquer une corruption de mémoire. Est-ce possible? P>
10 Réponses :
Toute l'idée d'un système d'exploitation est qu'un programme utilisateur ne peut pas l'écraser dans des conditions normales. Bien sûr, vous pouvez toujours faire quelque chose comme étant l'échappement de l'espace disque sur une partition utilisée pour un fichier d'échange et qui nuirait à de nombreux systèmes d'exploitation ou que vous pourriez trouver une vulnérabilité connue, mais il n'y a pas de moyen très facile de le crousser de manière fiable. P >
Et nous savons tous à quel point cela fonctionne dans la pratique. ;-)
@Andrew: Pour une seconde, j'ai lu votre nom comme Anderson Cooper, et j'étais comme, = o !!!
@Mehrdad: Désolé de vous décevoir. ;-)
écrire et charger un module de noyau qui appelle panique () ou implémenter son équivalent de celui-ci. P>
ou simplement exécuter la commande d'arrêt ou d'arrêt ou de la syscall qui l'applique. P>
Si le système d'exploitation se trouve être Windows, créez un faux pilote qui ne déprivent un pointeur nul. Crash! p>
Pour Windows Une possibilité est d'écrire un pilote de mode noyau qui verrouille des pages de mémoire appartenant à un processus, puis terminez ce processus. Entraînera un processus de BSOD "avec des pages verrouillées". P>
in Linux, alt-sysrq-c va écraser / redémarrer votre noyau. p>
dans Windows, voir: https://web.archive.org/web/20110513143420/http://www.dailygan.com/2008/09/some-methods-a-crash-Votre- windows.html [ED: le 8 mars 2021 - Passez à l'archive.org Link en raison du site descendant.] P>
L'origine Ublock détecte ce lien comme malveillant
Essayez d'allouer des morceaux de mémoire jusqu'à ce que vous n'ayez pas de mémoire libre: Modifier strong>:
En fait, j'ai essayé simplement sur un Linux de 64 bits avec 2 Go de RAM et 3,3 Go de swap: l'écran est gelé, je pourrais allouer 4950 Mo de RAM, mais le processus a ensuite été tué par le système et Linux est tombé sur ses pieds. Gradely, donc, non, cela ne fonctionne pas: =) p> p>
Mémoire virtuelle et pagination signifie que vous allez être là un moment. Et au moins dans Windows, vous écrasez votre propre processus de votre application long i> avant de planter le système d'exploitation.
L'astuce consiste à affecter et à accéder suffisamment pour que le système devienne terriblement lent mais pas autant que le tueur OMM reçoit après vous. Ensuite, "Travailler" sur cette mémoire rendra le système fondamentalement inutilisable. À mon avis, Linux n'est pas très robuste contre cette situation.
Vous pouvez lancer un fil d'écrire constamment d'écrire une chose sur chaque morceau de mémoire? :RÉ
Linux: même si vous ne collez pas strictement le système d'exploitation, vous pouvez facilement le rendre inutilisable en allouant de nombreux souvenirs (et en lisez / l'écrivant pour la répartition de la réalisation d'effectifs et de faire swaper le SOS) et par des lots à forger des processus. "Fork Bomb" est le mot clé et peut même être fait dans le script shell. P>
Pas seulement dans le script shell, mais dans le script shell utilisant des smileys d'ASCII mignons!
Stackoverflow.com/questions/991142 / ...
Je pense que la raison pour laquelle vous souhaitez planter le système d'exploitation est pertinent ici. Essayez-vous de simuler une condition pour tester ou êtes-vous simplement curieux? P>
Voici deux options si vous souhaitez recréer et automatiser, se bloquer, aux fins de la tolérance des pannes. P>
Les autres nombreuses suggestions sont bonnes si vous souhaitez faire un crash de l'OS lui-même. Ces collisions de logiciels peuvent aider à reproduire un processus de décrétion. Un ensemble similaire d'accidents matériels liés au matériel pourrait également fonctionner (comme réduire la vitesse sur un ventilateur programmable et surchauffer la CPU). P>
La raison de votre demande est en fait très importante car toutes les défauts différents donneront un résultat légèrement différent. P>
kebugcheck strong> sous Windows est le façon documentée d'obtenir un bsod. p>
Vous pouvez également essayer de supprimer la touche de registre racine em> ( \ registre code>) dans Windows XP, à l'aide de l'API natif em> NT. P >
Crash Un système d'exploitation à l'aide d'une application PURE Mode utilisateur signifie que le noyau est vulnérable. Si le système d'exploitation est bien testé, cela ne devrait pas se produire. P>
Vous pouvez essayer des fenêtres BSOD en attaquant des pilotes de 3rd à partis boges via l'envoi d'une ordure IO-Controls. P>
fonction de périofontrol (Windows) http://msdn.microsoft.com/en-us/ Bibliothèque / AA363216 (vs.85) .aspx p>
Pour répondre à votre système, nous aurions besoin de savoir quel système d'exploitation que vous utilisez.
Supposez-vous que votre programme a des privilèges root ou administrateur? Ou est-ce exécuté comme programme utilisateur non approuvé?
Écrivez la version 0.9 d'un pilote graphique qui devrait le faire. :)
@entropo - Je suppose Windows / Linux
"Windows / Linux" n'est pas un système d'exploitation.
Je pense que basé sur les réponses ci-dessous, il existe des moyens plus connus de crash de Linux que Windows ... :)
Le moyen facile est de tirer le câble d'alimentation du mur. Pour ce faire par programme: Robot.Grabe (PowerCode) .Pull. Susté (directionnelle.awayfromwall);
Ouais, mais c'était aussi un commentaire "pour sérieux" ... Ce sont des systèmes d'exploitation très différents à presque tous les niveaux. Si vous voulez aller au-delà de vagues généralités, vous devez vraiment en choisir un; Les réponses sont complètement différentes.
@cody gris - Je suppose que je suis plus intéressé à connaître les blacks Windows
Sur les anciens ordinateurs de compagnie, qui constituaient un emplacement de mémoire contenant le taux de rafraîchissement de l'écran. Si vous avez piqué 255 à cet endroit, cela aurait éventuellement amené l'écran surchauffer et attraper le feu. C'est mon genre de crash.