12.07.2015 Aufrufe

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Allgemeines BearbeitungsschemaDas Raw-Input-ModellDie bis hier dargestellten Abläufe der Tastatureingaberoutinelassen sich in einem einzigen Algorithmus derSignalübertragung zusammenfassen – von der Betätigungeiner Taste durch den Anwender bis zum Erscheineneines Zeichens auf dem Bildschirm: Beim Starten erzeugt das Betriebssystem im Systemprozesscsrss.exe einen Raw Input Thread <strong>und</strong> eineSystem-Hardware-Eingabe-Queue. Der RIT sendet dem Tastaturklassentreiber Leseanfragen,die bis zum Eintreten eines Tastaturereignissesim Wartezustand verbleiben. Drückt oder löst der Anwender eine Taste auf derTastatur, wird das Drücken oder Lösen vom Mikrocontrollerder Tastatur festgehalten, <strong>und</strong> der Scan-Code der gedrückten Taste sowie eine Interruptanforderungwerden an die CPU gesendet. Der System-Tastaturcontroller empfängt den Scan-Code, wandelt ihn um, macht ihn am Eingabe-Ausgabe-Port60h verfügbar <strong>und</strong> generiert einen Hardware-Interruptder CPU. Der Interrupt-Controller ruft die Interrupt-Behandlungs-RoutineIRQ 1 auf, eine IRS, die im Systemdes Tastaturfunktionstreibers i8042prt registriert ist. Die IRS liest die aus der inneren Queue des Tastaturkontrollerserscheinenden Daten, übersetzt denScan-Code in einen virtuellen Tastencode (unabhängige,vom System definierte Werte) <strong>und</strong> stellt denAufruf des Deferred Procedure Calls I8042Keyboard-IsrDpc in die Queue. Sobald wie möglich ruft das System den DPC auf,welcher wiederum die Callback-Routine Keyboard-ClassServiceCallback erzeugt, die im TastaturklassentreiberKbdclass registriert ist. Die Routine KeyboardClassServiceCallback ziehtaus ihrer Queue die zu erledigende Anfrage des RIT<strong>und</strong> sendet in ihm die Informationen über die gedrückteTaste zurück. Der RIT speichert die empfangenen Informationenin der System-Queue der Hardware-Eingabe <strong>und</strong> erstelltauf deren Basis die gr<strong>und</strong>legenden Windows-Tastaturmeldungen WM_KEYDOWN <strong>und</strong> WM_KEYUP, die ans Ende der VIQ des aktiven Threads gestelltwerden. Der Bearbeitungszyklus der Threadmeldungenlöscht die Meldung aus der Queue <strong>und</strong> leitet sie andie entsprechende Fensterroutine zur Bearbeitungweiter. Dabei kann die Systemfunktion TranslateMessage ausgelöst werden, die auf der Basis dergr<strong>und</strong>legenden Tastaturmeldungen die zusätzlichen„symbolischen“ Meldungen WM_CHAR, WM_SYSCHAR, WM_DEADCHAR <strong>und</strong> WM_SYSDEADCHAR erzeugt.Die oben beschriebenen Modelle der Tastatureingabesind aus der Sicht von Anwendungs-Programmierernin mancherlei Hinsicht unzureichend. Zum Eingabe-Empfang von Nicht-Standardgeräten muss eine Anwendungnämlich eine ganze Reihe von Operationendurchführen: Das Gerät öffnen, es periodisch abfragen,die Möglichkeit einer parallelen Nutzung des Gerätesdurch eine andere Anwendung sicherstellen <strong>und</strong> so weiter.Deshalb wurde in den letzten Windows-Versionenein alternatives Eingabe-Modell – das Raw-Input-Modell– angeboten, welches die Entwicklung von Anwendungenerleichtert, die Nicht-Standard-Eingabegeräteverwenden.Das Raw-Input-Modell unterscheidet sich von demOriginal-Eingabemodell von Windows. Beim herkömmlichenModell empfängt die Anwendung eine geräteunabhängigeEingabe in Form von Meldungen (wieetwa WM_CHAR), die an die Fenster der Anwendunggesendet werden. Das Raw-Input-Modell sieht vor,dass die Anwendung die Geräte registriert, von denensie Eingabe empfangen will. Weiterhin empfängt dieAnwendung die User-Eingabe über die Meldung WM_INPUT.Zwei Arten der Datenübertragung werden unterstützt,<strong>und</strong> zwar „Standard“ <strong>und</strong> „Gepuffert“. Zur Interpretationder eingegebenen Daten muss die Anwendung Informationenüber die Art des Eingabegerätes erhalten,was mit Hilfe der Funktion GetRawInputDeviceInfo ermöglichtwird.Verschiedene Umsetzungen von <strong>Keylogger</strong>nAusgehend von den oben beschriebenen Bearbeitungsmodellenvon Tastatureingaben unter Windowswerden im Folgenden die gr<strong>und</strong>legenden Methodenzur Umsetzung von <strong>Keylogger</strong>n näher betrachtet. Istder Aufbau des Modells klar, ist auch leichter zu verstehen,welche Mechanismen von <strong>Keylogger</strong>n ausgenutztwerden können.<strong>Keylogger</strong> können an jeder beliebigen Stelle des Bearbeitungszykluseindringen <strong>und</strong> Daten über gedrückteTasten abfangen, die von einem Bearbeitungs-Subsystemzu dem nächsten Subsystem in der Editor-Chainübermittelt werden. Wir haben die zu untersuchendenMethoden der Umsetzung von Software-<strong>Keylogger</strong>n insolche des User-Mode <strong>und</strong> in solche des Kernel-Modeunterteilt. In der Abbildung auf der folgenden Seite linksoben sind alle Bearbeitungs-Subsysteme der Tastatureingabe<strong>und</strong> ihre Wechselbeziehungen miteinanderdargestellt.<strong>Keylogger</strong>14

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!