Moin,
ich hab mich mal ein wenig mit dem Thema befasst und es geht ja in Python in ein paar Zeilen mit pyhook.
Aber was passiert da eigentlich im Hintergrund im Detail ? Habs mir mal laut meinen eingerosteten rudimentären Kenntnissen zusammengereimt.
Also da müsste doch ziemlich hardwarenah gearbeitet werden und zwar an der Southbridge müssten doch alle Peripheriewerte auf einen Stack kommen. Die von der Tastatur z.B. dann (64bit) Datenworte sind. Nun müssen die ja alle teilweise gleiche Bitfolgen aufweisen. Jetzt muss praktisch geparset werden, was vom Keyboard kommt und was keine Shortcuts, Funktionen sind wird gedroppt, jetzt wären noch die charactereingaben übrig, die ja nen ascii-wert in der folge haben. Den müsste man dann loaklisieren in hex umwandeln und der tabelle zuordnen. Die müsste dann auch automatisch richtig sortiert sein und wird dann genau in der queue geprintet.
Lieg ich da richtig ?
Und woher weiß man wie das aussieht und wonach man suchen muss und inwieweit ist das standardisiert
Wie funktioniert Keylogging genau ?
@Kingu: Wenn Du Dich interessierst, wie Tasteneingaben in den Rechner kommen, dann läuft das heutzutage meist über USB. Da kommen dann aber weder Shortcuts noch ASCII-Werte durch die Leitung, sondern nur KeyCodes. Die Umsetzung der KeyCodes nach Zeichen hängt dann von der Ländereinstellung Deines Betriebssystems ab.
Nun zu pyhook: Damit Deine Fensterchen was von der Außenwelt mitbekommen, werden sie vom Fenstermanager mit Ereignissen gefüttert: Maus hat sich bewegt, Taste wurde gedrückt, Größe hat sich geändert, bitte neu malen, usw.
Jetzt bietet die Fensterverwaltung eine Funktion an, die jedes Ereignis (oder z.B. nach Tastenereignissen gefiltert) bei Dir durchschleust. Das ist also ziemlich bequem und einfach und ohne viel Hexerei möglich.
Nun zu pyhook: Damit Deine Fensterchen was von der Außenwelt mitbekommen, werden sie vom Fenstermanager mit Ereignissen gefüttert: Maus hat sich bewegt, Taste wurde gedrückt, Größe hat sich geändert, bitte neu malen, usw.
Jetzt bietet die Fensterverwaltung eine Funktion an, die jedes Ereignis (oder z.B. nach Tastenereignissen gefiltert) bei Dir durchschleust. Das ist also ziemlich bequem und einfach und ohne viel Hexerei möglich.
Wenn du nicht direkt auf der Hardware arbeiten willst, kannst du dir natürlich X11-Quellcode anschauen.
Wobei man bei X11 auch immer im Hinterkopf behalten muss, dass der Keylogger quasi schon eingebaut ist, weil es keine Trennung auf Applikationsebene gibt und Tastendrücke überall ankommen.
Wobei man bei X11 auch immer im Hinterkopf behalten muss, dass der Keylogger quasi schon eingebaut ist, weil es keine Trennung auf Applikationsebene gibt und Tastendrücke überall ankommen.
An der FU Berlin gibt es zwei Bachelor-Arbeiten die beleuchten was passiert wenn man die Taste A auf der Tastatur betätigt bis das in einer Office-Anwendung angezeigt wird:
• http://www.inf.fu-berlin.de/inst/ag-se/ ... -das-a.pdf
• http://www.inf.fu-berlin.de/inst/ag-se/ ... -DasA2.pdf
• http://www.inf.fu-berlin.de/inst/ag-se/ ... -das-a.pdf
• http://www.inf.fu-berlin.de/inst/ag-se/ ... -DasA2.pdf
@Leonidas: Was laut Wikipedia zum Beispiel nicht frei verfügbar ist (im Sinne von „free software”), ist die USB 2.0 Unterstützung. Wenn man also ein „A” von der Tastatur bis zur Anzeige verfolgen will und die Taste auf einer USB-Tastatur gedrückt wird, ist dabei ein Stück unfreie Software beteiligt. Rechtlich kein Problem weil der Teil unter einer Lizenz steht, die „educational use” mit einschliesst, worunter diese Arbeit sicher fallen dürfte, aber es gibt ja Leute die grundsätzlich ein Problem mit Freibier haben.