elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
23 Mayo 2012, 07:44  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  intentando hacer hook a USB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: intentando hacer hook a USB  (Leído 2,771 veces)
Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
intentando hacer hook a USB
« en: 7 Febrero 2010, 03:35 »

hola a todos.

resulta que estoy intentando intervenir el mensaje WM_DEVICECHANGE (que tengo entendido que es el que necesito) pero cuando conecto algun dispositivo no me sale nada  :huh: bueno hice un codigo bastante sencillo para probar.

Código
HHOOK hook = NULL;
 
 
HINSTANCE hInst2;
 
LRESULT CALLBACK GetMsgProc(UINT nCode, WPARAM wParam, LPARAM lParam)
{
LPMSG msg = (LPMSG)lParam;
if(msg->message == WM_DEVICECHANGE )
{
MessageBox(0,"dispositivo","dispositivo",0);
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
 
 
 
DLLIMPORT BOOL setHook(HWND hWnd)
{
 
hook = SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)GetMsgProc,hInst2,0);
if(hook == NULL)
MessageBox(0,"fallo","fallo",0);
return TRUE;
 
}

lo que no estoy seguro si es que se instala el tipo de hook WH_GETMESSAGE.. o definitivamente esta todo mal  :rolleyes: en realidad no se  :huh:

ojala alguien me pueda orientar un poco... estoy un poco perdido  :xD
En línea
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #1 en: 7 Febrero 2010, 03:57 »

Nunca lo he usado pero soy de los que opta por hacer un loop, debido a que despues de entrar el dispositivo podrian buscar y eliminar luego tendrias que esperar nuevamente a que se introduzca un dispositivo
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #2 en: 7 Febrero 2010, 04:01 »

si también lo he hecho con un loop pero quiero aprender hacerlo con hooks  :xD
En línea
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #3 en: 7 Febrero 2010, 04:02 »

:xD si es por curiosidad hazlo...
En línea

Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.189


Se siente observado ¬¬'


Ver Perfil
Re: intentando hacer hook a USB
« Respuesta #4 en: 7 Febrero 2010, 13:13 »

Fijate en este codigo en VB:
Código
Public Sub HookForm(hwnd As Long)
   PrevProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
 
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
   If uMsg = WM_DEVICECHANGE Then
       If wParam = DBT_DEVICEARRIVAL Then
           Dim dev As DEV_BROADCAST_HDR
           CopyMemory dev, ByVal lParam, 12
           If dev.dbch_devicetype = DBT_DEVTYP_VOLUME Then
               MsgBox USBConected
           End If
       ElseIf wParam = DBT_DEVICEREMOVECOMPLETE Then
           AllLocalDrives
       End If
   End If
End Function

Las diferencias que veo son que tu no Subclassificas tu ventana de la misma forma, prueba a hacerlo con SetWindowLong, tendras que cambiar el CallBack...

:xD si es por curiosidad hazlo...
Ademas de 'curiosidad' es mas optimo usar un Hook que un loop...
« Última modificación: 7 Febrero 2010, 13:27 por Karcrack » En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #5 en: 7 Febrero 2010, 17:34 »

gracias Karcrack

la verdad que nunca he usado SetWindowLong... pero hay vere que me sale  ;D
En línea
Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #6 en: 7 Febrero 2010, 19:57 »

sigue sin resultar... y esta vez en hook no se instala  :rolleyes: SetWindowLong lanza error
Código
LONG hook;
 
 
HINSTANCE hInst2;
 
LRESULT WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
 
  if (uMsg == WM_DEVICECHANGE)
  {
           MessageBox(0,"dispositivo","dispositivo",0);
  }
  else
           MessageBox(0,"otro mensaje","otro mensaje",0);
 
 return DefWindowProc(hwnd, uMsg, wParam, lParam);
 
}
 
 
 
DLLIMPORT BOOL setHook(HWND hWnd)
{
 
hook = SetWindowLong(hWnd,GWL_WNDPROC,(LONG)WindowProc);
if(hook == 0){
MessageBox(0,"fallo","fallo",0);
printf("%d",GetLastError());
}
return TRUE;
 
}
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.189


Se siente observado ¬¬'


Ver Perfil
Re: intentando hacer hook a USB
« Respuesta #7 en: 7 Febrero 2010, 20:30 »

Que HWND le estas pasando? Deberias crear una ventan con CreateWindowEx para el subclass..
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #8 en: 7 Febrero 2010, 20:34 »

le paso el hwnd de la consola

setHook(GetForegroundWindow());

porque se debería crear una ventana?
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.189


Se siente observado ¬¬'


Ver Perfil
Re: intentando hacer hook a USB
« Respuesta #9 en: 7 Febrero 2010, 20:40 »

le paso el hwnd de la consola

setHook(GetForegroundWindow());

porque se debería crear una ventana?
Prueba creando una nueva ventana ;)
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #10 en: 7 Febrero 2010, 20:43 »

le paso el hwnd de la consola

setHook(GetForegroundWindow());

porque se debería crear una ventana?
Prueba creando una nueva ventana ;)

y si le paso el hwnd de otra ventana (como la del msn  :xD:huh:

es que es mucho codigo crear otra ventana  :xD
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.189


Se siente observado ¬¬'


Ver Perfil
Re: intentando hacer hook a USB
« Respuesta #11 en: 7 Febrero 2010, 20:48 »

y si le paso el hwnd de otra ventana (como la del msn  :xD:huh:

es que es mucho codigo crear otra ventana  :xD
Mucho codigo? Es una linea :-\ :-\
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #12 en: 7 Febrero 2010, 21:04 »

y si le paso el hwnd de otra ventana (como la del msn  :xD)  :huh:

es que es mucho codigo crear otra ventana  :xD
Mucho codigo? Es una linea :-\ :-\

 :xD pero hay harto codigo en llenar WNDCLASSEX

peor me resulto  ;D tenias razón era eso

pero ahora que me resulto me gustaria saber porque hay que pasarle el hwnd de una ventana que yo creo  :huh: solo te pido que me respondas eso último  Karcrack (por que intente pasarle el hwnd de msn y no funciono  :xD)

no manejo mucho el tema de las ventanas
« Última modificación: 7 Febrero 2010, 21:18 por Zzombi » En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.189


Se siente observado ¬¬'


Ver Perfil
Re: intentando hacer hook a USB
« Respuesta #13 en: 7 Febrero 2010, 21:53 »

:xD pero hay harto codigo en llenar WNDCLASSEX

peor me resulto  ;D tenias razón era eso

pero ahora que me resulto me gustaria saber porque hay que pasarle el hwnd de una ventana que yo creo  :huh: solo te pido que me respondas eso último  Karcrack (por que intente pasarle el hwnd de msn y no funciono  :xD)

no manejo mucho el tema de las ventanas
Porque la ventana no pertenece a tu proceso.

Solo tienes que llamara a CreateWindowEx tal que asi:
Código:
HWND CreateWindowEx(     
    DWORD dwExStyle,                     = 0
    LPCTSTR lpClassName,                = "STATIC"
    LPCTSTR lpWindowName,             = NULL
    DWORD dwStyle,                        = 0
    int x,                                       = 0
    int y,                                       = 0
    int nWidth,                               = 0
    int nHeight,                               = 0
    HWND hWndParent,                    = 0
    HMENU hMenu,                           = 0
    HINSTANCE hInstance,                 = GetModuleHandle(NULL)
    LPVOID lpParam                           = 0
);
Te devuelve el HWND de la ventan que recibira los mensajes.
En línea

Zzombi

Desconectado Desconectado

Mensajes: 171



Ver Perfil WWW
Re: intentando hacer hook a USB
« Respuesta #14 en: 7 Febrero 2010, 21:57 »

jeje gracias por contestar Sr.Karcrack
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Intentando hacer shellcode 64 bits
Bugs y Exploits
tuket 9 1,471 Último mensaje 28 Julio 2011, 14:25
por tuket
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines