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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Equivalente a SetWindowsHookEx en modo kernel?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Equivalente a SetWindowsHookEx en modo kernel?  (Leído 4,643 veces)
Zzombi

Desconectado Desconectado

Mensajes: 174



Ver Perfil WWW
Equivalente a SetWindowsHookEx en modo kernel?
« en: 31 Julio 2010, 06:52 am »

Hola a todos.

bueno esa es la duda... asi como OpenProcess tiene su equivalente en modo kernel (ZwOpenProcess) me preguntaba si SetWindowsHookEx tiene algun equivalente.

Saludos.


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #1 en: 31 Julio 2010, 07:32 am »

No, no lo tiene. Que es lo que queres hacer exactamente? porque a simple vista como mínimo estas encarando el problema con un planteo incorrecto.

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #2 en: 31 Julio 2010, 16:01 pm »

Mas que equivalente es la funcion que implementa realmente la funcionalidad (valga la redundancia) y existir existe (idem  ;D):

Código
  1. user32!NtUserSetWindowsHookEx:
  2. 7e3a81fb b825120000      mov     eax,1225h
  3. 7e3a8200 ba0003fe7f      mov     edx,offset SharedUserData!SystemCallStub (7ffe0300)
  4. 7e3a8205 ff12            call    dword ptr [edx]
  5. 7e3a8207 c21800          ret     18h
  6.  
  7. win32k!NtUserSetWindowsHookEx:
  8. bf852c45 8bff            mov     edi,edi
  9. bf852c47 55              push    ebp
  10. bf852c48 8bec            mov     ebp,esp
  11. bf852c4a 56              push    esi
  12. bf852c4b e8eadefaff      call    win32k!EnterCrit (bf800b3a)
  13. bf852c50 33f6            xor     esi,esi
  14. bf852c52 397510          cmp     dword ptr [ebp+10h],esi
  15. bf852c55 7433            je      win32k!NtUserSetWindowsHookEx+0x27 (bf852c8a)
  16.  
  17. ...

De cualquier manera estoy de acuerdo con Littlehorse, mejor plantea el problema y no la solucion que crees posible.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Zzombi

Desconectado Desconectado

Mensajes: 174



Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #3 en: 31 Julio 2010, 18:01 pm »

Hola LittleHorse y eternal

la verdad que estoy intentando hacer un anti keylogger... y pense que hookeando al equivalente de SetWindowsHookEx seria un buen comienzo.. ya que es una de las formas que se suele usar para intervenir el teclado

Eternal, con que aplicación vez eso?
nunca habia visto NtUserSetWindowsHookEx  :o en la msdn tampoco aparece

Gracias  ;D
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #4 en: 31 Julio 2010, 18:44 pm »

Te aviso que ademas de los keyloggers que usan ese metodo (todos de modo Usuario) existen los de modo Kernel (un filtro por ejemplo) y los de hardware.

Eso lo veo con el WinDbg de Microsoft.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Zzombi

Desconectado Desconectado

Mensajes: 174



Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #5 en: 31 Julio 2010, 19:05 pm »

Te aviso que ademas de los keyloggers que usan ese metodo (todos de modo Usuario) existen los de modo Kernel (un filtro por ejemplo) y los de hardware.

lo se  :P

pero por ahora me encargare de los de modo usuario  :xD

pd: no he podido encontrar la declaración de NtUserSetWindowsHookEx  :-\

EDIT...........

creo que la encontre

Código
  1. typedef ULONG (NTUSERSETWINDOWSHOOKEX)(  
  2.     IN HANDLE hmod,  
  3.     IN PUNICODE_STRING pstrLib OPTIONAL,  
  4.     IN DWORD idThread,  
  5.     IN int nFilterType,  
  6.     IN PVOID pfnFilterProc,  
  7.     IN DWORD dwFlags  
  8. );
  9.  
« Última modificación: 31 Julio 2010, 19:10 pm por Zzombi » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Equivalente a SetWindowsHookEx en modo kernel?
« Respuesta #6 en: 31 Julio 2010, 21:11 pm »

No podes hookear el equivalente porque no existe el equivalente, ese tipo de eventos van de la mano con el modo usuario. Existe la implementación, pero dista de ser una equivalencia en modo kernel, de hecho SetWindowsHookEx es solo un wrapper de lo que ya te mostró Eternal.

Hay muchas formas de hacer un keylogger en modo usuario, algunas serán mejores que otras, pero evitando una no implica evitar las otras. Por lo tanto, si intentas hacer un método que evite un tipo especifico, te vas a volver loco para evitarlos todos.

Lo principal es que tengas en claro el diagrama del sistema y en cuenta todas las formas que hay para interceptar eventos (por lo menos la mayoría). Partiendo de ahí, podes ingeniar algo que acabe con gran parte de esos métodos, pero luego tendrás que meterte indefectiblemente con los que te menciona Eternal, que de hecho los filtros de modo kernel son muy comunes en los rootkits.

No se si los habrás leído, pero si todavía no lo hiciste, recomendado que te metas con:

"Programming the Microsoft Windows Driver Model"
"Rootkits - Subverting the Windows Kernel"


En cuanto al WinDBG, carga Win32k.sys, y luego pasas como comando al WinDBG:

Código:
uf ntusersetwindowshookex

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sincronizar modo kernel y modo usuer.
Programación C/C++
Distorsion 2 2,827 Último mensaje 28 Diciembre 2010, 16:45 pm
por Distorsion
CONSULTA: SetWindowsHookEx
Hacking
noookiever 1 4,112 Último mensaje 26 Agosto 2011, 15:41 pm
por someRandomCode
Trabajo con procesos [modo kernel] « 1 2 »
Programación C/C++
lweb20 19 6,600 Último mensaje 6 Diciembre 2011, 21:38 pm
por Eternal Idol
Duda con modo kernel y CNC
Programación C/C++
achernar_ 4 3,904 Último mensaje 24 Agosto 2012, 04:36 am
por achernar_
Un problema con WinDbg en modo kernel local.
Windows
Usuario887 1 1,937 Último mensaje 31 Julio 2020, 09:33 am
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines