Duda sobre Python Keylogger

Iniciado por mastertux, 30 Marzo 2011, 22:16 PM

0 Miembros y 3 Visitantes están viendo este tema.

mastertux

Hola, encantado de saludaros.

Me he lanzado a aprender Python como primer lenguaje de programacion, siguiendo el consejo que lei en uno de vuestros post. Mi sorpresa es que me esta siendo resultando especialmente emocionante.

El caso es que he tomado como objeto de estudio un keylogger que baje de la red, tal vez de por aqui (no recuerdo) que pertenece a un tal Niko.

Mu duda es la siguiente el difine un fucincion de la siguiente manera:
......
def K_B_E(accion):
output = accion.Key
......

Alguien podria explicarme que es ese Key. Supongo que es la forma de invocar un metodo para recoger la informacion del teclado y guardarla en la variable output, pero no encuentro informacion por ningun lado, ni aun en el library reference de python.

Gracias por adelantado

SnakingMax


mastertux

hummmm, estoy confundido: la variable no es output y el valor que se le da accion.Key?

Pongo la funcion completa:

def K_B_E(action):
output = accion.Key
salida = output
log = "Logs.txt"
guardateclas = open(log, "a")
guardateclas.write(salida)
guardateclas.close()

return True

08l00D

jaja el keylogger ese lo hice yo cuando estaba empezando a programar...
te explico mas o menos como funciona..
la funcion K_B_E es una funcion callback que usaba cada vez que se interceptaba una pulsacion de una tecla...pensa como si fuera una funcion de soporte, se usa para cambiar el nombre de algunas teclas para q quedara mas pro xD.. y las guardaba en un archivo...


def K_B_E(accion):
output = accion.Key


accion es en realidad un objeto... y Key uno de sus atributos el cual como bien dijiste su valor termina derivando de la invocacion de un metodo de la misma clase que se encarga de interceptar los eventos del teclado...
el codigo no es dificil...pregunta cualquier otra duda sino te podes mirar la documentacion del modulo pyHook que es el usado en el codigo...

Saludos

mastertux

#4
asi que es tuyo!!! Caray, menos mal que se me ha ocurrido citar la fuente!!!!

Muchas gracias por tu respuesta, le ando echando un ojo, aunque aun estoy verde. Ya te comentare como me va. Un saludo.


sobre el modulo pyHook puedes darme una pista de donde encuestro la documentacion, lo he buscado en el library, pero no hay manera.


mastertux


mastertux

hello, coloco aqui esta duda por no abrir post sin ton ni son:

import random

def funcion():

   usuario = (raw_input("pon un numero: " ))   
   computadora = random.choice(range(2))



   while computadora != usuario:
      print "jajajajjajajaja"

   else:
      print "boooom"

funcion()

Lo que pretendia era que el usuario ingrese un numero
que la computadora elija uno entre un rango de numeros predefinido y que mientras no lo adivine que imprimma "jajajajajaja" hasta que lo haga, cuando lo haga que imprima "boom". El caso es que se queda enganchada en el bucle "jjajjajajaja", supongo que porque solo ejecuta la funcion una vez. Que soluciones se os ocuren?

P.d. no juzgueis duramente que solo llevo dos dias con lo de aprender a programar, e hice letras puras en el instituto!!!!!
un saludo.



08l00D

tenes dos problemas... uno es que la asignacion a la variable usuario es solamente una vez...por lo que su valor va a ser siempre el mismo y si es erroneo el bucle lo va a tomar siempre por erroneo porque compara siempre el mismo valor...
el otro error es que la entrada de datos la haces con la funcion raw_input.. por lo que el tipo de dato va a ser una cadena no un entero como SI lo es la variable computadora...por lo que la comparacion de usuario(cadena) con computadora(entero) siempre va a dar falso...

no es dificil de solucionar ... podes directamente poner la entrada de datos del usuario en la comparacion del while...
y el problema de la cadena lo arreglas pidiendo los datos con input()..asi..


Código (python) [Seleccionar]

import random

def funcion():

  computadora = random.choice(range(2))

  while computadora != input("pon un numero: " ):
     print "jajajajjajajaja"

  print "boooom"

funcion()


y el else se usa en conjunto con un if...asi que no va...

Saludos

mastertux

gracias, ando en mis primeros pasos; no lo habria visto en la vida.