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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Hook al ratón.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hook al ratón.  (Leído 4,873 veces)
fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.075



Ver Perfil WWW
Hook al ratón.
« 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. }
« Última modificación: 4 Abril 2016, 16:48 pm por fary » En línea

Un byte a la izquierda.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Hook al ratón.
« Respuesta #1 en: 4 Abril 2016, 18:37 pm »

Hola fary que ventaja tiene usar esta hook frente a la función GetCursorPos

Salutos...
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.075



Ver Perfil WWW
Re: Hook al ratón.
« Respuesta #2 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.
En línea

Un byte a la izquierda.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Hook al ratón.
« Respuesta #3 en: 4 Abril 2016, 18:46 pm »

Vale gracias por la info  fary cuando ande en windows lo pruebo

Salutos...
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Hook al ratón.
« Respuesta #4 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!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.075



Ver Perfil WWW
Re: Hook al ratón.
« Respuesta #5 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.
En línea

Un byte a la izquierda.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Hook al ratón.
« Respuesta #6 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!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Hook al ratón.
« Respuesta #7 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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
VEH Api Hook
Análisis y Diseño de Malware
bizco 9 8,864 Último mensaje 10 Junio 2012, 01:39 am
por pipaman
api hook
Programación Visual Basic
Cromatico 7 5,889 Último mensaje 21 Marzo 2011, 18:52 pm
por ntaryl
VB6 Hook Api
Programación Visual Basic
philipjfry99 0 2,775 Último mensaje 19 Marzo 2011, 23:51 pm
por philipjfry99
[C] Hook en DLL
Programación C/C++
calk9 9 4,854 Último mensaje 17 Septiembre 2011, 20:19 pm
por Eternal Idol
(C#) ¿Hook del ratón a nivel bajo?
.NET (C#, VB.NET, ASP)
Shout 3 2,890 Último mensaje 18 Julio 2013, 11:53 am
por Shout
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines