Código: Seleccionar todo

/***********************************
* Coder: Linkgl                    *
* Thanks: The swash                *
* Exaple for hooks WH_KEYBOARD_LL  *
* (LowLevel)                       *
***********************************/
#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;
   //seteamos el hook
   hHook=SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LowLevelKeyboardProc,GetModuleHandle(NULL),0);
   //Bucle de mensajes que usamos en las winapi
   while(TRUE==GetMessage(&msg, NULL, 0, 0))
   {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
   }
   //eliminamos el hook
   UnhookWindowsHookEx(hHook);
}
Swash me ayudó diciendome a donde tenía que apuntar la estructura (lParam), xD bueno se detectan las pulsaciones de A-Z no se detectan carácteres especiales de esta manera lo quize hacer como un ejemplo sencillo para carácteres especiales hay que procesar el .vkCode deacuerdo con la tabla ascii, xD y esto también lo podemos implementar para el RAT salu2
//mHmm..
Buen código linkgl .

esta linea:

Código: Seleccionar todo

if(wParam == WM_KEYDOWN)
No sirve exactamente para eso, sirve para detectar cuando se presiona la tecla asi solo se imprime el caracter cuando se presiona y no tambien cuando se suelta! . Prueba a quitar esa linea y veras como es pra eso

salu2!
Imagen
Drinky94 escribió:Buen código linkgl .

esta linea:

Código: Seleccionar todo

if(wParam == WM_KEYDOWN)
No sirve exactamente para eso, sirve para detectar cuando se presiona la tecla asi solo se imprime el caracter cuando se presiona y no tambien cuando se suelta! . Prueba a quitar esa linea y veras como es pra eso

salu2!
Por eso, ya lo sabía si no no habría puesto esa condición no pongo nada que no se que es En el comentario lo puse "Se usa cuando se detecta la pulsacion de la tecla", para usar cuando se suelta se usa WM_KEYUP, xD y tambien lo puedes implementar en el bucle de mensajes cuando usas WindowProc y mandarlo al bucle de mensajes jeje, es fácil entenderlo porque tengo experiencia en javascript donde los eventos son similares (onKeyUp tambien existe) jeje si se entendió mal el comentario de la linea entonces mi culpa saludos hermano!
//mHmm..
Muy bueno linkgl,no hay ni un solo fallo y funciona muy bien....

Gracias,sin duda,esto es oro....
Blog técnico dedicado a la seguridad informática y al estudio de nuevas vulnerabilidades.
Blog: http://www.seginformatica.net
Twitter: https://twitter.com/#!/p0is0nseginf
Woww , que coded....
tengo que decir que es el primer coded que veo en esta seccion , que no entiendo( Comprendo Menos del %70 ).....
Hare lo posible para cambiar eso , el tema es interesante al igual que tu code....
obey escribió:Pues si tuviese mas edad todavia pero esqe perder la virginidad con tu profesora de informatica y que ademas tenga 50....
Responder

Volver a “Fuentes”