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...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Tastatur umwandelt <strong>und</strong> sie in der VIQ des Threads derAnwendung Microsoft Word anlegt.Bearbeitung der Meldungen durch ein konkretesFensterReihenfolge der RIT-Anfragen an den TastaturtreiberMit Hilfe des Tools IrpTracker des bereits erwähntenUnternehmens Open Systems Resources kann mandie Reihenfolge der während der Bearbeitung derTastatureingaben erfolgenden Aufrufe einsehen.Bearbeitung der Tastatureingabe im User-ModeEs stellt sich nun die Frage, wie der Thread die Meldungenverarbeitet, die in seiner Message-Queue einlaufen.Der Standard-Verarbeitungs-Zyklus von Meldungensieht für gewöhnlich folgendermaßen aus:while(GetMessage(&msg, 0, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}Mit Hilfe der Funktion GetMessage werden die Tastaturereignisseaus der Queue gezogen <strong>und</strong> mittels derFunktion DispatchMessage in eine Fensterroutine weitergeleitet,die die Meldungen für das Fenster bearbeitet,wo im gegebenen Augenblick der Input-Fokuskonzentriert ist. Der Input-Fokus ist ein von der Anwendungoder von Windows erzeugtes Attribut, das demFenster hinzugefügt werden kann. Verfügt ein Fensterüber einen Input-Fokus, empfängt die entsprechendeFunktion dieses Fensters alle Tastaturmeldungen ausder System-Queue. Anwendungen können den Input-Fokus von einem Fenster zu einem anderen weiterreichen,wie etwa beim Wechsel von einer Anwendungzur anderen mit Hilfe der Tastenkombination Alt+Tab.Wie bearbeitet der RIT nun die eingehenden Informationen?Alle Tastaturereignisse werden in die SHIQ eingereiht,woraufhin sie nacheinander in Windows-Meldungenumgewandelt werden (wie etwa WM_KEY*,WM_?BUTTON* oder WM_MOUSEMOVE) <strong>und</strong> sichans Ende der virtualisierten Eingabe-Queue (VIQ =Virtualized Input Queue) des Vordergr<strong>und</strong>-Threadseinreihen. In den Windows-Meldungen werden dieTasten-Scan-Codes durch virtuelle Tastencodes ersetzt,die nicht der Anordnung der Tasten auf der Tastatur,sondern der Aktion, die die jeweilige Taste ausführt,entsprechen. Der Mechanismus der Codeumwandlunghängt vom jeweils aktiven Tastaturlayout, von dergleichzeitigen Betätigung anderer Tasten (wie etwaSHIFT) <strong>und</strong> anderen Faktoren ab.Geht der Anwender ins System, generiert der WindowsExplorer einen Thread, der eine Aufgabenliste <strong>und</strong> einenArbeitstisch (WinSta0_RIT) erzeugt. Dieser Threadwird an den RIT gekoppelt. Startet der Anwender MicrosoftWord, so fügt sich der Thread dieser Anwendung,der das Fenster erzeugt, sofort zu dem RIT hinzu. Daraufhinlöst sich der zum Explorer gehörende Threadvom RIT, da immer nur ein Thread zur Zeit an den RITgekoppelt sein kann. Bei der Betätigung von Tastenerscheint in der SHIQ ein entsprechendes Element,das dafür sorgt, dass der RIT aktiviert wird, dass er dieEreignisse der Hardware-Eingabe in Mitteilungen derNoch vor der Funktion DispatchMessage wird für gewöhnlichdie Funktion TranslateMessage ausgelöst, dieauf der Gr<strong>und</strong>lage der Meldungen WM_KEYDOWN,WM_KEYUP, WM_SYSKEYDOWN <strong>und</strong> WM_SYS-KEYUP die „symbolischen“ Meldungen WM_CHAR,WM_SYSCHAR, WM_DEADCHAR <strong>und</strong> WM_SYS-DEADCHAR generiert. Diese symbolischen Meldungenreihen sich in die Message-Queue der Anwendung ein,wobei die originalen Tastatur-Meldungen nicht aus derQueue gelöscht werden.Datenfelder des Tastenzustands der TastaturBei der Entwicklung des Hardware-Eingabemodellsin Windows war die Gewährleistung der Ausfallunempfindlichkeitein wichtiger Punkt. Diese wird durcheine unabhängige Verarbeitung der Eingabe durch dieThreads gewährleistet, wodurch ungünstige Wechselwirkungender Threads miteinander verhindert werden.Eine zuverlässige Isolation der Threads voneinanderist dadurch allerdings noch nicht gegeben, daher unterstütztdas System noch eine zusätzliche Konzep tion,den lokalen Eingabezustand. Jeder Thread verfügtüber einen eigenen Eingabezustand, der in der StrukturTHREADINFO dokumentiert ist. Die Informationenüber den Zustand enthalten Daten über die virtualisierteEingabe-Queue des Threads sowie eine Gruppe vonVariablen. Letztere enthalten steuernde Informationen<strong>Keylogger</strong>12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!