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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como puedo Unhookear las APis de user32.dll?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como puedo Unhookear las APis de user32.dll?  (Leído 4,055 veces)
W0lFy


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Como puedo Unhookear las APis de user32.dll?
« en: 31 Diciembre 2009, 13:32 pm »

Bueno pos esa es mi duda . Un saludo!


En línea

K@NuT0
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #1 en: 31 Diciembre 2009, 13:45 pm »

Hace tiempo hice un programita en C que hacia esto mismo (https://foro.elhacker.net/seguridad/hook_detector_by_hendrix-t221586.0.html). El método que usé fue el siguiente:

  • Analizar todas las API's que usa el proceso (Sacaba la IAT del ejecutable)
  • Una vez tenía la IAT, sacaba la dirección en donde empezaba la API (GetProcAddress + GetModuleHandle) y verificara que no hubiera algún salto (Yo usaba el opcode E9, aquí una lista).
  • Si había salto, cargaba la libreria que contenía la API (en tu caso, si solo quieres reparar User32.dll solo tendras que cargar esta) y copiaba los 20 primeros bytes de la API (los originales)
  • Una vez tenia los primeros 20 bytes originales de la API, los pegaba directamente sobre la dirección de memoria hookeada, con los que se reparaba el Hook (ya que sobreescribía el salto que había por los opcodes originales de la API).


Este método solo funciona si el primer opcode de la instrucción es un salto, en otros casos no funcionaría.

Ahora te toca a ti codear esto  :)

Un Saludo  :)


En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #2 en: 31 Diciembre 2009, 14:44 pm »

Hendrix, no seria mas efectivo comparar los primeros 20bytes del API supuestamente hookeada directamente?  Envez de buscar un salto? Ya que hay mas formas de saltar que con un JMP absoluto...

Si no me equivoco Steve (de HackHound) hizo un codigo que hacia esto en C, comparaba los primenos n Bytes en memoria del API con los mismo bytes que tenia el API en el disco duro... (recorriendo la EAT, etc...)
En línea

ntaryl

Desconectado Desconectado

Mensajes: 95



Ver Perfil
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #3 en: 1 Enero 2010, 00:44 am »

Happy  new year
Sandsprite  have a nice tool Hook explorer 
u  will see interesting  code 
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #4 en: 1 Enero 2010, 17:18 pm »

Hendrix, no seria mas efectivo comparar los primeros 20bytes del API supuestamente hookeada directamente?  Envez de buscar un salto? Ya que hay mas formas de saltar que con un JMP absoluto...

Si no me equivoco Steve (de HackHound) hizo un codigo que hacia esto en C, comparaba los primenos n Bytes en memoria del API con los mismo bytes que tenia el API en el disco duro... (recorriendo la EAT, etc...)

Bueno, yo lo hacia así, hay algunas apis que por defecto tienen un salto en su primer opcode y mi programa lo detectaba como hook, pero al repararlo quedaba igual, pero bueno...

Un Saludo  :)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #5 en: 1 Enero 2010, 17:59 pm »

Lo que no se es si esto funciona con apis hookeadas desde un driver , me podrias contestar eso Hendrix ?

Salu2

Gracias
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #6 en: 1 Enero 2010, 21:54 pm »

Lo que no se es si esto funciona con apis hookeadas desde un driver , me podrias contestar eso Hendrix ?

Salu2

Gracias

El modo de Hooking es diferente, ya que mi aplicación repara una modificación del código de la API del proceso, en modo kernel, lo que se hookea es la SSDT. Pero bueno, si se hookea alguna función de algún otro driver o alguna IOCTL si se funcionaria este mismo método para reparar la modificación.

Un Saludo  :)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
W0lFy


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Re: Como puedo Unhookear las APis de user32.dll?
« Respuesta #7 en: 4 Enero 2010, 14:33 pm »

muy bueno probare... ya posteare con lo ocurrido.. Mil Gracias!
En línea

K@NuT0
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿User32.dll corrupto?
Windows
Bioskline 2 3,153 Último mensaje 31 Marzo 2013, 03:25 am
por Saberuneko
Que es user32 y kernel32¿? que diferencias existen?
Programación General
Borito30 3 3,229 Último mensaje 24 Marzo 2017, 00:50 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines