Info de fond
Donc, sur Windows 7 et plus tard, un menu s'ouvre lorsque vous appuyez sur Control + Alt + Supprimer lors de la connexion. Ce menu apparaît dans une interface graphique avec diverses options. Ceci est le menu Control Alt Supprimer (ou CAO). Lorsque vous essayez d'exécuter n'importe quel programme en mode administrateur, une fenêtre contextuelle appelée "UI de consentement de l'UAC" apparaît qui demande la confirmation de l'utilisateur des privilèges administrateurs souhaités.
Le jeu
Le programme spécifique que je constate que cela se produisait dans est Nintendo cauchemar , un vieux jeu de mai 2009. Cependant, le jeu était probablement recompanté comme à l'intérieur des rapports de jeu qu'il a été compilé avec le fabricant de game 8, qui a fait n'existe pas en mai 2009.
l'exploit
Pour des raisons inconnues et peu claires, l'ouverture du menu CAD ou de la boîte de dialogue Interface utilisateur de consentement dans le jeu omis de exécuter des portions du code du jeu. Cela inclut la détection de collision et tout le code gère le coiffage de la fréquence de trame. Je n'ai été capable que de vérifier sous Windows 7, mais cela a également été confirmé pour travailler sous Windows 10. Je demanderais à ce que quelqu'un puisse courir sous Windows 8, mais le jeu ne fonctionne même pas sur Windows 8 en raison de la bogue MIDI Windows 8.
Pourquoi cela serait même utile pour comprendre
Donc, moi et d'autres personnes SpeedRun Ce jeu ... ou au moins essayer de. Je suis en particulier horrible à cela. Quoi qu'il en soit, il existe une manière utile que ce problème pourrait être potentiellement utilisé pour gagner du temps dans une course. En fait, il y a six endroits qui me viennent à l'esprit presque immédiatement.
Voici une vidéo d'un TAS I fait environ un mois de retour pour référence sur ce que la route actuelle de SpeedRun est la suivante: [TAS] Nightmare Nintendo à 24h04 par typhon
Dans la route, il y a les points clés suivants:
Pour cinq d'entre eux, appelez simplement un bug pour tomber instantanément à travers le sol serait le moyen le plus rapide de mourir, de sorte que celles-ci auraient une durée mineure sauve juste en utilisant le virus sans rien de fantaisie.
Le deuxième point est cependant celui qui est plus utile et d'avoir des implications beaucoup plus grandes. Le segment des œufs de la mort avec Mario est simultanément le segment le plus difficile en course et le plus long de loin, purement à cause du nombre de personnes ennemies. La plupart du temps passé dans cette zone consiste à tuer des ennemis. Cependant, en invoquant ce bogue pour un nombre précis de cadres, le joueur pourrait sauter d'hypothétiquement, puis permettre à toutes les entités ennemies de tomber à travers le sol, ce qui tue ainsi instantanément tout dans la pièce. Faire cela pourrait très bien couper un cinquième du temps dans toute la course.
Sauter Point 2 a effectivement été un point d'intérêt principal pour un certain temps et de trouver un moyen de sauter probablement la priorité absolue unique.
Je tente donc de déterminer pourquoi ce bogue survient à un niveau technique et de la répliquer potentiellement avec le chronométrage exact (c'est-à-dire sans ouvrir réellement l'une de ces fenêtres pop intrusives).
l'histoire jusqu'à présent
Donc, certaines d'autres personnes que j'ai demandées connaissent apparemment un peu plus sur les internes du moteur Maker 8.0 du jeu et apparemment, ce bug affecte Tous Jeux de jeu 8,0, bien que cela ne dis pas beaucoup comme dans le même veine, le bug n'existe plus dans les versions actuelles. Donc, demander au développeur est à peu près aussi utile que de demander à quelqu'un d'autre familier avec le moteur.
En utilisant certains outils miniers (ne me demandez pas, je n'ai aucune idée), ils ont constaté que, dans la gamelop principale, une exception est lancée avec le code "0eedFade" qui équivaut apparemment à une exception de Delphes inconnue. Cela provoque à son tour que la gamelop ignore le reste de l'exécution du cadre. Le fabricant de jeu 8 est censé écrit à Delphi, tout ce qui nous dit que quelque chose a reçu quelque chose d'inattendu ou invalide. De même entre les deux points, ils réduisaient l'exception pour devoir être arrivé entre, ils ont constaté que les seules API Windows qu'ils pouvaient localiser était un appel à Joygettex, apparemment utilisé pour la fonctionnalité de joystick. Apparemment, même dans des jeux sans joystick, il est encore appelé.
Alors maintenant, j'essaie juste de comprendre ce que ces dialogues provoquent une fonctionnalité de joystick (?) À casser et s'il existe un moyen plus facile de "casser la fonctionnalité de joystick".
Le Ctrl + Alt + Delete Combinaison, plus formellement connue sous le nom de séquence d'attention sécurisée, soulève la boîte de dialogue Security Windows sur un bureau sécurisé . Ceci est un bureau complètement séparé de la part des autres applications exécutées (\Sessions\1\Windows\WinSta0\Winlogon
vs \Sessions\1\Windows\WinSta0\Default
)1. D'autres informations sont disponibles dans la documentation Microsoft .
Ce comportement existe depuis que le bureau sécurisé a été introduit dans Windows Vista. Un processus similaire est utilisé pour les invites d'élévation de l'UAC par défaut.
Le commutateur de bureau peut causer des problèmes avec certaines applications, en particulier ceux utilisant des graphiques 3D. Au début de Vista, il était particulièrement lent en raison de la manière dont elle interagissait avec les premiers pilotes graphiques de WDDM.
Comme une alternative, si votre exigence est d'ouvrir le gestionnaire de tâches, vous pouvez le faire avec Ctrl + Shift + Esc ou en cliquant avec le bouton droit de la souris sur la barre des tâches. Cela ne provoquera pas un commutateur de bureau.
1 Du chapitre 7 de Windows Internals 7th ed Partie 1