Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Miseryk en 16 Septiembre 2010, 23:30 pm



Título: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 16 Septiembre 2010, 23:30 pm
Hola, me gustaría saber si me podrían aconsejar con el tema que voy a plantear.
Estaba intentando hacer hooking y lo pude hacer, ya sea inyectando DLL o cambiando una funcion por otra, esto es modo usuario. Lo intenté con el MessageBoxA  y funcionó en los procesos que cambiaba el codigo (inyectados), pero averigué que tenía que hacer en modo kernel para que sea general. He estado buscando informacion pero no pude solucionar mi problema, en sí, es hookear un API como por ejemplo MessageBoxA en el SO, si pudieran ayudarme sería de gran ayuda.





Desde ya muchas gracias.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: bizco en 16 Septiembre 2010, 23:44 pm
si no me confundo MessageBox no tiene directamente una funcion asociada especificamente en modo kernel, explica mas que quieres hacer y que funciones.

PD: y creo que el foro de vb no es el correcto.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 17 Septiembre 2010, 01:47 am
A lo que me refiero es que escuché formas de hookear un API para todos los procesos, osea hookear la API en sí.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: bizco en 17 Septiembre 2010, 02:01 am
si, pero te repito MessageBox concretamente dudo que tenga su correspondiente en modo kernel (desconozco si es asi o no, pero lo dudo bastante) por eso mejor seria especificaras que intentas hacer. puedes hookear del mismo modo que en modo usuario con el tipico jmp o si estan dentro de la ssdt cambiando el valor de la funcion por el de tu funcion.

puedes leer esto y de ahi ya buscar tu la informacion que necesites:

http://uninformed.org/index.cgi?v=8&a=2&p=10


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: BlackZeroX en 17 Septiembre 2010, 02:08 am
A lo que me refiero es que escuché formas de hookear un API para todos los procesos, osea hookear la API en sí.

son tres ejemplos


Dulces Lunas!¡.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 17 Septiembre 2010, 03:51 am
Primero de todo estuve viendo los ejemplos, me gusto mucho como disvirtuó esa persona :D fue lindo para detener el momento de tanto buscar :D:D:D, lo que yo quiero es tipo un programa que intercepte el OpenProcess, WriteMemory, ReadMemory y esos API con los que se pueden modificar los programas, pero no quiero inyectar proceso por proceso, eso ya lo hice, quiero algo más genérico, que inyectando en un lugar sólo quede guardado, por ejemplo tengo un programa que oculta procesos, y hasta que no reinicie la pc todos los procesos que se llaman de tal manera no aparecen en los procesos, ya sea con tasklist, enumprocess, etc, algo así quiero, pero con cualquier otra API :). Desde ya muchas gracias.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 17 Septiembre 2010, 04:03 am
Aca encontré esta página pero mucho ASM no sé, es ésto lo que yo pretendo?

http://zairon.wordpress.com/2007/04/10/some-notes-about-system-service-dispatch-table-hook/

http://zairon.wordpress.com/2007/03/20/tool-system-service-descriptor-table-revealer/


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: bizco en 17 Septiembre 2010, 04:07 am
no te obliga a escribir en asm, pero seria bueno que lo entendieses. y si, hablando de modo kernel tienes las opciones que te digo, jmp tipico para las que no esten en la ssdt y el cambio de direccion para las que si estan.

Y espero que no quieras hacerlo en vb.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 17 Septiembre 2010, 04:10 am
no te obliga a escribir en asm, pero seria bueno que lo entendieses. y si, hablando de modo kernel tienes las opciones que te digo, jmp tipico para las que no esten en la ssdt y el cambio de direccion para las que si estan.

Y ¿cómo sería un ejemplo simple del MessageBox que lo "inyecté"? y desde cualquier programa que haga la llamada MessageBox muestre la función que le pasé.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: bizco en 17 Septiembre 2010, 04:37 am
como ya te he dicho, dudo que exista la equivalente a MessageBox. de todos modos ya te he dicho, puedes hacer el tipico jmp que tu ya has hecho en modo usuario y aplicarlo de igual forma o leer sobre la otra forma que es mas sencillo.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: Miseryk en 17 Septiembre 2010, 04:46 am
como ya te he dicho, dudo que exista la equivalente a MessageBox. de todos modos ya te he dicho, puedes hacer el tipico jmp que tu ya has hecho en modo usuario y aplicarlo de igual forma o leer sobre la otra forma que es mas sencillo.

Y como hacen algunos programas para ocultar procesos, lo único que se es que tienen por ejemplo HideDriver.sys, ese sí tiene alguna equivalencia?

(http://img830.imageshack.us/img830/7467/apihook2.jpg)


Gracias por la ayuda.


Título: Re: [Ayuda] Hooking kernel Mode
Publicado por: bizco en 17 Septiembre 2010, 05:15 am
La equivalencia me refiero a la api, por ejemplo CreateFile tiene su funcion en modo kernel que es llamada cuando usas esta api, esto cuando leas documentacion sobre la ssdt seguro que te queda mas claro. eso es una cosa, luego el tema de ocultar procesos es otra que puede hacerse de distintas formas. Vas a tener que leer sobre como funciona windows internamente para comprender las cosas, asi que como ya te comente lee desde el primer link y cuando tengas clara una cosa empieza con otra.

Date un paseo por este tema http://foro.elhacker.net/analisis_y_diseno_de_malware/introduccion_a_la_programacion_de_drivers_en_windows-t231193.0.html