Kürzester Code für Key-Logger

8

Okay, ich schlage eine Shortest-Key-Logger-Herausforderung vor. Wie der Gentleman unter " Sind Key-Logger-Fragen erlaubt? " Erklärt , müssen strenge Regeln auferlegt werden, um diese Herausforderung für PPCG gültig zu machen.

  1. Der Key-Logger muss unter Windows, Linux oder Mac OSX ausgeführt werden (jede Programmiersprache ist willkommen).
  2. Bei der Ausführung muss die Meldung "Ich werde Sie protokollieren" angezeigt werden (entweder in einer Konsole oder über die GUI).
  3. Die Schlüssel, die für die Anmeldung bei dieser Herausforderung relevant sind, sind Buchstaben (Groß- und Kleinschreibung ist nicht wichtig) und Zahlen. Alle anderen Schlüssel wie Symbole, Steuerschlüssel und Leerzeichen sind optional und können ignoriert werden.
  4. Alle relevanten Tastendrücke, die zur Laufzeit auftreten (auch wenn die Anwendung nicht scharfgestellt ist), müssen in einer Protokolldatei gespeichert werden, die mit einem beliebigen Texteditor (auch einem esoterischen) gelesen und überprüft werden kann, sofern ich dies mit überprüfen kann dieser Texteditor).

Ist jemand bereit dafür? Whatdayatink?

MathuSum Mut
quelle
1
"4. [...] in einer Protokolldatei gespeichert" in welchem ​​Format?
Undichte Nonne
Meine Frage wurde aktualisiert, um das beabsichtigte Format anzugeben.
MathuSum Mut
Ich kann leicht protokollieren, was in der REPL meines Programms eingegeben wird. Ist das ausreichend oder sollte es funktionieren, wenn ich etwas in meinen Browser oder eine andere Anwendung eingebe?
Coredump
Ja, es sollte für alles funktionieren, "auch wenn die Anwendung nicht im Fokus steht".
MathuSum Mut
1
Können wir ein Programm schreiben, das auf einem Mac (AppleScript) ausgeführt wird, wenn wir ein Beispiel-GIF dafür bereitstellen?
Downgoat

Antworten:

10

Bash, 90 Bytes

Dies funktioniert unter Ubuntu und erfordert evtest. Es wählt ein Gerät aus, das eine Tastatur ist, und speichert evtestdie Ausgabe in der Datei l. Wenn Sie eine formatiertere Ausgabe wünschen, kann ich das mit mehr Bytes tun.

echo I\'m gonna log you
sudo evtest /dev/input/by-path/`ls /dev/input/by-path/|grep kbd`>l
Trebuchette
quelle
1
Sie, mein Herr, verdienen Respekt.
MathuSum Mut
5

AutoHotKey, 1171 Bytes

Ja, es ist wahnsinnig groß, aber es macht den Job.

#NoEnv ;
SendMode Input ;
ToolTip, I'm gonna log you!

~a::fileappend, a, keylog.txt
~b::fileappend, b, keylog.txt
~c::fileappend, c, keylog.txt
~d::fileappend, d, keylog.txt
~e::fileappend, e, keylog.txt
~f::fileappend, f, keylog.txt
~g::fileappend, g, keylog.txt
~h::fileappend, h, keylog.txt
~i::fileappend, i, keylog.txt
~j::fileappend, j, keylog.txt
~k::fileappend, k, keylog.txt
~l::fileappend, l, keylog.txt
~m::fileappend, m, keylog.txt
~n::fileappend, n, keylog.txt
~o::fileappend, o, keylog.txt
~p::fileappend, p, keylog.txt
~q::fileappend, q, keylog.txt
~r::fileappend, r, keylog.txt
~s::fileappend, s, keylog.txt
~t::fileappend, t, keylog.txt
~u::fileappend, u, keylog.txt
~v::fileappend, v, keylog.txt
~w::fileappend, w, keylog.txt
~x::fileappend, x, keylog.txt
~y::fileappend, y, keylog.txt
~z::fileappend, z, keylog.txt
~1::fileappend, 1, keylog.txt
~2::fileappend, 2, keylog.txt
~3::fileappend, 3, keylog.txt
~4::fileappend, 4, keylog.txt
~5::fileappend, 5, keylog.txt
~6::fileappend, 6, keylog.txt
~7::fileappend, 7, keylog.txt
~8::fileappend, 8, keylog.txt
~9::fileappend, 9, keylog.txt
~0::fileappend, 0, keylog.txt
Michelfrancis Bustillos
quelle
Kreativ, kam mir nicht in den
Sinn,
Der Name der Protokolldatei kann ein einzelnes Zeichen sein, wodurch Sie 9 Bytes pro Schlüssel sparen . Sie sollten in der Lage sein, alle Schlüssel in einer for-Schleife zu durchlaufen, wodurch Sie viele, viele, viele Bytes sparen. Derzeit bin ich nicht davon überzeugt, dass diese Antworten unsere Kriterien für ernsthafte Konkurrenten erfüllen.
Mego
Gemäß den Regeln in unserer Hilfe müssen alle Lösungen ein ernstzunehmender Anwärter auf die verwendeten Gewinnkriterien sein. Für einen Code-Golfwettbewerb bedeutet dies, dass alle Einträge einen Versuch zeigen müssen, den Code zu spielen.
Dennis