Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: fary en 4 Abril 2016, 16:31 pm



Título: Hook al ratón.
Publicado por: fary en 4 Abril 2016, 16:31 pm
Este tema surgió en base a una pregunta de Mester que quería saber la posición del ratón en la pantalla sin hacer mucho uso de la memoria del ordenador. Creo que la forma de que consuma menos recursos es mediante hooks, aquí el ejemplo...

Código
  1. // Hook al Ratón
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <windows.h>
  6.  
  7. LRESULT CALLBACK LowLevelMouseProc(int    nCode, WPARAM wParam, LPARAM lParam)
  8. {
  9.    PMSLLHOOKSTRUCT raton = (PMSLLHOOKSTRUCT)lParam;
  10.  
  11.    system("CLS");
  12.    printf("X:%i\tY:%i\n",raton->pt.x, raton->pt.y);
  13.  
  14.    return CallNextHookEx(NULL, nCode, wParam, lParam);
  15. }
  16.  
  17. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  18. {
  19. HHOOK MouseHook = SetWindowsHookEx(WH_MOUSE_LL,LowLevelMouseProc,hInstance,0);
  20.  
  21.    MessageBoxA(0,"Si pulsas aceptar acabará el programa",0,0);
  22.    return 0;
  23. }
  24.  

Pueden dar su opinión si piensan que hay una manera mas óptima de hacerlo.

saludos.



Si quieres inutilizar el raton:

Código
  1. LRESULT CALLBACK LowLevelMouseProc(int    nCode, WPARAM wParam, LPARAM lParam)
  2. {
  3.    PMSLLHOOKSTRUCT raton = (PMSLLHOOKSTRUCT)lParam;
  4.  
  5.    if (raton->pt.x != 0 || raton->pt.y != 0);
  6.    {
  7.        SetCursorPos(0,0);
  8.    }
  9.  
  10.    return CallNextHookEx(NULL, nCode, wParam, lParam);
  11. }


Título: Re: Hook al ratón.
Publicado por: crack81 en 4 Abril 2016, 18:37 pm
Hola fary que ventaja tiene usar esta hook frente a la función GetCursorPos

Salutos...


Título: Re: Hook al ratón.
Publicado por: fary en 4 Abril 2016, 18:40 pm
Hola fary que ventaja tiene usar esta hook frente a la función GetCursorPos

Salutos...

Para usar GetCursosPos necesitas un bucle que consumirá muchísima más memoria.

Con este hook funcionará como si fuese un evento, es decir solo se activará cuando sea necesario.


Título: Re: Hook al ratón.
Publicado por: crack81 en 4 Abril 2016, 18:46 pm
Vale gracias por la info  fary cuando ande en windows lo pruebo

Salutos...


Título: Re: Hook al ratón.
Publicado por: 79137913 en 4 Abril 2016, 19:48 pm
HOLA!!!

Aunque el Hook muchas veces saltara por heuristica, si se tienen recursos esta buena la idea de ejecutar on the fly el codigo con get cursor pos y que dumpee un log a algun sitio, asi es mas  facil evitar deteccion.

GRACIAS POR LEER!!!


Título: Re: Hook al ratón.
Publicado por: fary en 4 Abril 2016, 20:51 pm
HOLA!!!

Aunque el Hook muchas veces saltara por heuristica, si se tienen recursos esta buena la idea de ejecutar on the fly el codigo con get cursor pos y que dumpee un log a algun sitio, asi es mas  facil evitar deteccion.

GRACIAS POR LEER!!!

Hola numeritos cuanto tiempo :)

No debería de saltar la heuristica con un código tan simple.

Saludos.


Título: Re: Hook al ratón.
Publicado por: 79137913 en 6 Abril 2016, 13:51 pm
HOLA!!!

@fary: Si, mucho tiempo :D!
Cierto, no deberia saltar, pero cuando tenemos un server grande con muchas funciones distintas para ejecutar todas aportan su granito de arena para que salte la heuristica de los avs :P mas alla si el programa solo hace el hook como dices no deberia pasar nada.

GRACIAS POR LEER!!!


Título: Re: Hook al ratón.
Publicado por: Arkangel_0x7C5 en 16 Junio 2016, 21:51 pm
Para usar GetCursosPos necesitas un bucle que consumirá muchísima más memoria.

Con este hook funcionará como si fuese un evento, es decir solo se activará cuando sea necesario.

Un bucle consumir memoria? yo mas bien diria que ocupa mas al procesador, pero si pones sleep en el bucle no creo que nadie lo note

Saludos