¿Interceptar inyeccion de codigo en una aplicacion?

Iniciado por Magic_Key, 12 Septiembre 2009, 20:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Magic_Key

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.

Jaixon Jax

  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:.

cobein

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.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Magic_Key

#3
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.

cobein

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).

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Magic_Key

Cita de: 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).


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.

Jaixon Jax

#6
 ;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  :¬¬

Magic_Key

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.