Porque falla esta inyección?

Iniciado por Vaagish, 1 Octubre 2013, 01:02 AM

0 Miembros y 3 Visitantes están viendo este tema.

Vaagish

Hola! Como andan? El codigo es simple, el problema debe ser aun menor.. pero no lo hago andar.. :/


// dllmain.cpp : Define el punto de entrada de la aplicación DLL.
#include "stdafx.h"

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
char *URL = "http://cplusplus.com/img/cpp-logo.png";
char *File = "C:\\cpp-logo.png";

switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
URLDownloadToFile(NULL, URL, File, 0, NULL);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

Bueno, muy simple.. esto se inyecta en chrome.exe o en el proceso que sea y cuelga :/
Podria ser quizas por el espacio que ocupa en el proceso??

x64core

Para saber si el codigo que se inyectara funciona, primero se depura o se prueba, si se require de algun recurso del proceso host, se emula. En este codigo no hay un error donde se pueda colgar, que hay del codigo de inyeccion?
por cierto te falto el break en el case DLL_PROCESS_ATTACH, nota que el compilador podria hacer una optimizacion es por eso.

Vaagish

Gracias por responder x64! El inyector funciona, porque si cargo una dll con un MessageBox no hay problema.. Ya lo probe con los breaks, pero aun asi lo cuelga, es con esa api el problema  :silbar: ahora estaba por probar la "descarga inyectada" con peticion GET HTTP, pero me interesaria que funcione de las dos formas, si se precisa algun análisis lo hago y lo posteo,, (no se mucho de depurar y de aqui a que pueda depurar un proceso inyectado... es la muerte)  :(

Saludos!!

x64core

#3
Cita de: Vaagish en  1 Octubre 2013, 01:33 AM
Gracias por responder x64! El inyector funciona, porque si cargo una dll con un MessageBox no hay problema.. Ya lo probe con los breaks, pero aun asi lo cuelga, es con esa api el problema  :silbar: ahora estaba por probar la "descarga inyectada" con peticion GET HTTP, pero me interesaria que funcione de las dos formas, si se precisa algun análisis lo hago y lo posteo,, (no se mucho de depurar y de aqui a que pueda depurar un proceso inyectado... es la muerte)  :(

Saludos!!
Pues si dices que funciona, entonces lo mejor es hacer una depuracion en tiempo real, depurar el proceso objetivo ( pueda quieras notar que  el chrome tiene procesos hijos ).
selecionas tu depurador de preferencia digamos ollydbg que se detenga en cada modulo cargado asi podras detenerlo cuando se cargue tu modulo o puedes escribir esto al inicio del codigo fuente:
__asm int 3
Para que se detenga cuando se ejecute esa instruccion. si genera una excepcion copia el desemsablado , pila de llamadas, registros , el ultimo error aqui, lo voy
a analizar.

-----
O talvez tu problema no alguna excepcion sino creando otro hilo para hacer la descarga?

Vaagish

Efectivamente x64! Un hilo soluciono el problema.. Muchas Gracias!

Ahora puedo hacer otra pregunta? Porque el otro dia pregunte y nadie me respondio.. Tu sabes como es eso de agregarle funcionalidades a un programa con inyeccion dll? Yo tendria que debuguear a fondo para conocer las funciones del programa objetivo, no? Para asi modificarlo a gusto?

Gracias otra vez!

x64core

Cita de: Vaagish en  1 Octubre 2013, 06:35 AM
Efectivamente x64! Un hilo soluciono el problema.. Muchas Gracias!

Ahora puedo hacer otra pregunta? Porque el otro dia pregunte y nadie me respondio.. Tu sabes como es eso de agregarle funcionalidades a un programa con inyeccion dll? Yo tendria que debuguear a fondo para conocer las funciones del programa objetivo, no? Para asi modificarlo a gusto?

Gracias otra vez!
Dependiendo del programa y de que tipo de funcionalidades quieras, que es lo quieres hacer?

Vaagish

En realidad, no es que tenga algo pensado.. pero supongamos este escenario: Quiero hacer un wallhack para un juego FPS online (por decir algo, no me gusta hacer trampa en los juegos jaja) bueno, como podria yo saber que tengo que modificar? crackeandolo primero, no? o existen otros metodos para hacer este tipo de cosas?

Gracias!

x64core

Cita de: Vaagish en  1 Octubre 2013, 19:53 PM
En realidad, no es que tenga algo pensado.. pero supongamos este escenario: Quiero hacer un wallhack para un juego FPS online (por decir algo, no me gusta hacer trampa en los juegos jaja) bueno, como podria yo saber que tengo que modificar? crackeandolo primero, no? o existen otros metodos para hacer este tipo de cosas?

Gracias!
La mayoria de veces hookeando funciones del sistema operativo pero eso depende,si, a depurar.