Kode terpendek untuk key-logger

8

Oke, saya mengusulkan tantangan logger terpendek. Sebagaimana dijelaskan oleh pria di " Apakah pertanyaan pencatat kunci diperbolehkan? ", Aturan ketat harus diberlakukan untuk membuat tantangan ini berlaku untuk PPCG.

  1. Key-logger harus dijalankan di Windows, Linux atau Mac OSX (bahasa pemrograman apa pun boleh datang).
  2. Setelah dieksekusi, ia harus menampilkan pesan: "Aku akan mencatatmu" (baik di konsol atau menggunakan GUI).
  3. Kunci yang relevan untuk masuk dalam tantangan ini adalah huruf (case tidak penting) dan angka, semua yang lain seperti simbol, kunci kontrol dan spasi putih adalah opsional dan dapat diabaikan.
  4. Semua penekanan tombol yang relevan yang terjadi selama runtime (bahkan ketika aplikasi tidak fokus) harus disimpan dalam file log yang dapat dibaca dan diverifikasi menggunakan editor teks apa pun (bahkan yang esoteris, selama saya dapat memverifikasinya menggunakan editor teks itu).

Adakah yang mau? Whatdayatink?

MathuSum Mut
sumber
1
"4. [...] disimpan dalam file log" dalam format apa?
Leaky Nun
Memperbarui pertanyaan saya untuk menentukan format yang diinginkan.
MathuSum Mut
Saya dapat dengan mudah mencatat apa yang diketik dalam REPL program saya, apakah itu cukup atau haruskah berfungsi ketika saya mengetikkan sesuatu di browser saya atau aplikasi lain juga?
coredump
Ya, itu harus bekerja untuk apa pun, "bahkan ketika aplikasi tidak fokus".
MathuSum Mut
1
Bisakah kita menulis program yang berjalan di mac (AppleScript), jika kita memberikan contoh gif dari itu berjalan?
Downgoat

Jawaban:

10

Bash, 90 byte

Ini berfungsi di Ubuntu, dan membutuhkan evtest. Ini mengambil perangkat yang merupakan keyboard, dan menyimpan evtestoutput ke file l. Jika Anda menginginkan output yang lebih terformat, saya dapat melakukannya dengan lebih banyak byte.

echo I\'m gonna log you
sudo evtest /dev/input/by-path/`ls /dev/input/by-path/|grep kbd`>l
Trebuchette
sumber
1
Anda layak mendapatkan hormat.
MathuSum Mut
5

AutoHotKey, 1171 bytes

Ya, ini luar biasa besar, tetapi berhasil.

#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
sumber
Kreatif, tidak terpikir oleh saya untuk menggunakan monitor hotkey: P
MathuSum Mut
Nama file log bisa berupa satu karakter yang menghemat 9 byte per kunci . Anda harus dapat mengulangi semua kunci dalam loop untuk, menghemat banyak, banyak, banyak byte. Seperti berdiri, saya tidak yakin jawaban ini memenuhi kriteria pesaing serius kami.
Mego
Menurut aturan di pusat bantuan kami , semua solusi harus menjadi pesaing serius untuk kriteria kemenangan yang digunakan. Untuk kontes golf kode, itu berarti semua entri harus menunjukkan upaya untuk mem-golf-kan kode tersebut.
Dennis