Article View: de.comp.sys.ibm
Article #256Re: Tasten abfangen
From: Thomas Liening
Date: Wed, 05 Aug 1992 14:28
Date: Wed, 05 Aug 1992 14:28
65 lines
3954 bytes
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!rootReferences:
<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