🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.sys.ibm
Article #256

Re: Tasten abfangen

#256
From: Thomas Liening
Date: Wed, 05 Aug 1992 14:28
65 lines
3954 bytes
Hallo !

In <1992Aug4.074458.6678@Informatik.TU-Muenchen.DE> listl@Informatik.TU-Muenchen.DE (Andreas Listl) writes:

>In Artikel <4irYiArJag@P-ERACK.zer.sub.org> schreibt 
>erack@data-hh.zer.sub.org:

>>[ISR fuer INT 09h]

>Wenn ich mit diesem Programm die Tastenkombination Ctrl-Alt-Delete
>abfangen moechte, damit der Rechner nicht mehr bootet, dann funktioniert
>das solange gut, bis ich Windows 3.1 aufrufe. Obwohl Windows den Vektor
>9 nicht verbiegt, reagiert es auf Ctrl-Alt-Delete. Was passiert da ?

Zunaechst einmal: Windows reagiert nur dann auf Ctrl-Alt-Del, wenn es
im 386 Enhanced Mode laeuft. Das Druecken dieser Kombination im
Standard Mode fuehrt zu einem sofortigen Reboot. 

Wenn es als einzige Tastenkombination um Ctrl-Alt-Delete geht, laesst
sich das auf jedem System machen, das es erlaubt, langsames ROM ins
RAM zu kopieren und den RAM-Inhalt als Ersatz fuer das ROM-BIOS zu
verwenden. Man nutzt einfach die Tatsache aus, dass ein Software-Reset
auf PCs grundsaetzlich durch einen Sprung an die Adresse F000:FFF0h
ausgefuehrt wird, und setzt an dieser Stelle einfach einen Sprung zu
einer beliebigen Behandlungsroutine ein.

So primitiv wird es bei Windows 3.1 natuerlich nicht gemacht. Der
80386 verfuegt ueber einen Mechanismus, der fuer das gleichzeitige
Laufenlassen mehrerer DOS-Programme praedestiniert ist: Den Virtual
8086 Mode. Mit diesem Modus koennen im Prinzip beliebig viele so-
genannte Virtual Machines erzeugt werden, von denen jede aussieht
wie ein 8086-Rechner (also wie ein PC). Grundgedanke ist, dass hinter
all den Virtual Machines ein uebergeordnetes Betriebssystem (in dem
Falle Windows) steht, das die globale Kontrolle ueber den Rechner
hat. Das Betriebssystem sorgt dafuer, dass sich die einzelnen VMs
nicht ins Gehege kommen, indem unter anderem saemtliche kritischen
Instruktionen emuliert werden. Maschinenbefehle wie INT, IN, OUT und
so weiter werden nicht etwa normal ausgefuehrt, sondern vom ueber-
geordneten Betriebssystem *emuliert*. Interrupts, zum Beispiel der
Hardware-Interrupt der Tastatur (IRQ1 = INT 09h), gelangen nicht zur
VM, sondern werden anhand der sogenannten Interrupt Descriptor Table
(IDT) dem uebergeordneten Betriebssystem zugefuehrt. Die IDT ist
weder identisch mit der unter DOS sichtbaren INT-Tabelle im ersten
Kilobyte des Adressraums, noch hat sie etwas damit zu tun. Und so
kommt es, dass Windows alle Tastendruecke laengst gesehen hat, bevor
sie die gerade aktive Applikation, geschweige denn ein evtl. vor
dem Start von Windows geladenes TSR ueberhaupt bemerkt. Das Abfangen
von Ctrl-Alt-Del, Ctrl-Esc, Alt-Tab und so weiter ist dann nur noch
eine Formsache.

Ach ja: Wenn Du auf Deinem System einen Speichermanager wie etwa QEMM
oder 386MAX laufen hast, laeuft der Rechner auch ohne Windows schon
im Virtual 8086 Mode. Dass die Methode mit dem Abfangen von Ctrl-Alt-
Del auf DOS-Ebene dann funktioniert, liegt daran, dass Dir der Speicher-
manager diesbezueglich keine Steine in den Weg legt. Schliesslich hat
er hierbei ja keine Schutzfunktionen fuer I/O-Befehle etc. zu erfuellen,
sondern kuemmert sich nur um die Speicherverwaltung.

Gruss, Thomas.

-----------------------------------------------------------------------
Thomas Liening * Roennebergstrasse 14 * 1000 Berlin 41, Germany, Europe 
Voice: +49 30 852 59 28 * Fax: +49 30 852 59 28 (call voice prior!)
Smart: root@chshost.in-berlin.de
Bang: ...mcsun!unido!fub!einoed!bitcave!chshost!root
Technical Details
Message-ID: <1992Aug05.142839.323@chshost.in-berlin.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!fub!einoed!bitcave!chshost.in-berlin.de!root
References: <1992Aug4.074458.6678@Informatik.TU-Muenchen.DE>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.sys.ibm
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!fub!einoed!bitcave!chshost.in-berlin.de!root
From: root@chshost.in-berlin.de (Thomas Liening)
Subject: Re: Tasten abfangen
Message-ID: <1992Aug05.142839.323@chshost.in-berlin.de>
Keywords: Keyboard Interrupt
Organization: Creative Hard- & Software, Berlin, Germany
References: <1992Aug4.074458.6678@Informatik.TU-Muenchen.DE>
Date: Wed, 05 Aug 1992 14:28:39 GMT
Lines: 66