Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Magic_Key en 12 Septiembre 2009, 20:01 pm



Título: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Magic_Key en 12 Septiembre 2009, 20:01 pm
Hola gente, estoy buscando sobre el tema pero no saco nada en claro. ¿Conoceis alguna manera para evitar que te inyecten dll's o similar en un proceso?

Respecto al tema de inyectores de dll's hay mucho, pero el tema inverso, el proteger un programa/juego, etc. del inyector, no he encontrado apenas nada.

Cualquier idea es bienvenida.

Saludos.


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Jaixon Jax en 12 Septiembre 2009, 20:10 pm
  Ay que hookear la api CreateRemoteThread o LoadLibrary y testear la dll o el proceso que se quiere cargar
si no es segura que no la ceargue  :rolleyes:.


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: cobein en 12 Septiembre 2009, 20:18 pm
Como dice Jaixxon Jax podrias hookear LoadLibrary... pero eso no va a detener la inyeccion de codigo, simplemente va a prevenir una manera de hacerlo. No creo que consigas mucho desde userland en mi opinion.
Te recomiendo que leas un poco porque es bastante extenso el tema.


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Magic_Key en 12 Septiembre 2009, 20:29 pm
Gracias a ambos. Bueno, ya se que evitarlo 100% esta complicado, pero al nivel que lo voy a usar, me basta con bloquear la inyeccion simple. Entonces parece ser que me basta con bloquear el CreateremoteThread.

¿Alguna idea de como denegar/anular siempre el LoadLibrary y CreateremoteThread? (incluso aunque otra aplicacion sea la que haga la llamada).

Salu2.


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: cobein en 12 Septiembre 2009, 20:47 pm
El LoadLibrary se ejecuta de manera local cuando es una inyeccion con CreateremoteThread, asi que con hacerle un hook y filtrar tendria que ser suficiente... pero vuelvo a repetir que va a ser super limitado y posiblemente te crees mas problemas que otra cosa porque VB utiliza el loadlibrary para muchas funciones... por consiguiente posiblemente termines hookeando las funciones que queres usar para el hook...

Si no queres volverte loco,mejor busca un packer decente que tenga algun tipo de proteccion o si queres hacer algo vos por amor al arte... se me ocurre que podrias enumerar las librerias en memoria para detectar algo indeseado (aunque obviamente se pueden ocultar).



Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Magic_Key en 12 Septiembre 2009, 20:58 pm
El LoadLibrary se ejecuta de manera local cuando es una inyeccion con CreateremoteThread, asi que con hacerle un hook y filtrar tendria que ser suficiente... pero vuelvo a repetir que va a ser super limitado y posiblemente te crees mas problemas que otra cosa porque VB utiliza el loadlibrary para muchas funciones... por consiguiente posiblemente termines hookeando las funciones que queres usar para el hook...

Si no queres volverte loco,mejor busca un packer decente que tenga algun tipo de proteccion o si queres hacer algo vos por amor al arte... se me ocurre que podrias enumerar las librerias en memoria para detectar algo indeseado (aunque obviamente se pueden ocultar).


Pos si, tienes razon jeje. Pero bueno, yo lo que queria hacer era evitar la inyeccion de una dll en un juego llamado Halo, es un juego antiguo, y apenas existen cheats, pero el que existe es un aimbot (que inyecta la dll en el proceso), de hay que este investigando el tema este del hooking.

Con bloquear que inyecten esa dll en concreto, me sobra. Ahora bien, me parece que aun no tengo el nivel para hacer todo esto del hooking, mirare algo mas simple, como los cheksum de los programas (lo que no se si es posible hacerlo en memoria.. jeje).

Me parece que es dll me la van a seguir metiendo doblada, aun no tengo los conceptos que manejas, lastima jeje.

Gracias por tu ayuda.


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Jaixon Jax en 12 Septiembre 2009, 21:24 pm
 ;D

  Tienes el nombre de la dll , tienes el exe que quieres proteger  :xD mas facil no podria estar estas rutinas de inyeccion y de api hook son casi siempre parecidas lo que cambia es poco de seguro que con algun buen manual si logras hookear messagebox de seguro que ya se te ocurrira alguna manera de aplicarlo a tu problema. Nosotros te mostramos las pildoras  :xD tu veras que tan profundo quieres llegar en el agujero del conejo  :laugh: ...


  Saludos.

PD LoadLibrary la puedes hookear una sola vez  :¬¬ ya si que lo intentas hacer con el mismo hook  :silbar: terminaras en un hook recursivo  :huh: o algo asi  :¬¬


Título: Re: ¿Interceptar inyeccion de codigo en una aplicacion?
Publicado por: Magic_Key en 18 Septiembre 2009, 21:19 pm
Bueno, e encontrado un muy buen tuto de mazard, que explica un poco el tema este (por si alguien le interesa,  w ww.mazard.info/tutos/apihooking.pdf) aunque el problema que el code de ejemplo no esta en vb6, aunque se entiende.

Mientras, sigo buscando source de ejemplo para la api createremote, a ver si hay suerte jeje.

Saludos.