Crear un Keylogger en Python
En Python, podemos leer la entrada del usuario y detectar dispositivos de hardware como un teclado y un mouse para desarrollar aplicaciones interactivas. En particular, el módulo pynput
nos permite trabajar con dichos dispositivos y detectar la pulsación de teclas y el movimiento del cursor con funciones.
Este tutorial demostrará cómo crear un keylogger en Python.
Crear un Keylogger en Python
Primero, comprendamos qué es un keylogger. Un keylogger es una aplicación que puede leer las teclas presionadas por el usuario en el teclado y almacenarlas en un archivo de registro.
Estas aplicaciones generalmente se usan para monitorear dispositivos para solucionar problemas y detectar problemas técnicos. En estos días, dichos scripts se usan con intenciones maliciosas, como monitorear dispositivos para ver la contraseña y otros códigos de acceso, por lo que se debe tener cuidado al usar estos scripts.
Ahora crearemos un keylogger simple en Python utilizando los módulos logging
y pynput
.
Usaremos el módulo de registro
para crear un archivo de registro que rastrea todas las teclas presionadas. Crearemos un archivo usando el constructor basicConfig()
y especificaremos el nombre del archivo
y el format
dentro de este constructor.
El módulo pynput
tiene un objeto Listener
que recopila funciones cuando se presiona una tecla. Definiremos una función llamada pulsar
que recogerá el objeto Oyente
.
La función press()
leerá las teclas presionadas y las registrará en el archivo usando la función logging.info()
. Tenga en cuenta que primero deberá escribir la clave en una cadena.
Código:
from pynput.keyboard import Key, Listener
import logging
logging.basicConfig(
filename=("logfile.txt"), level=logging.DEBUG, format="%(asctime)s: %(message)s"
)
def press(key):
logging.info(str(key))
with Listener(on_press=press) as listener:
listener.join()
Producción:
Como se muestra en el ejemplo anterior, cuando se ejecuta el script dado, las teclas presionadas por el usuario se anotan en el archivo de registro. Tenga en cuenta que cada entrada en el archivo de registro se basa en el formato especificado en la función basicConfig()
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn