Monitorear proceso hijo y saber cuando llama a una función específica.

Iniciado por carlosclanguagedev, 14 Mayo 2013, 19:32 PM

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

carlosclanguagedev

Hola quisiera saber si es posible hacer lo siguiente.

Actualmente hago lo siguiente en la aplicación.
Seteo en mi aplicación una variable de entorno.
Ejecuto otra aplicación como proceso hijo que hereda dicha variable de entorno.

El proceso hijo tiene la función getContent() que obtiene el valor de dicha variable de entorno.

Lo que quiero hacer es modificar el contenido de dicha variable desde el proceso padre justo cuando el proceso hijo llame a getContent.

Quiero ejecutar el proceso hijo en modo debug por así decirlo, poder monitorearlo, y cuando detecte que está llamando a la función getContent, injectarle el código para que setee en la variable de entorno el valor que yo desee.

Mi pregunta es si se puede, cómo puedo ejecutar el proceso hijo en modo monitoreo por decirlo de alguna manera?  y cómo saber desde el proceso padre cuando el puntero de ejecución del proceso hijo por así decirlo está en la entrada de una función específica.

Me encantaría poder aprender a hacer esto.

0xDani

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Arkangel_0x7C5

Para estas cosas se suelen usar los hook(Ganchos)

Basicamente lo que se hace es localizar la direccion de la funcion que quieres enganchar y modificarla en tiempo de ejecucion para que salte a la funcion que tu necesites

Saludos

carlosclanguagedev

Cómo podría hacer eso en windows más o menos Arkangel_0x7C5.
¿Podría detectar cuando el proceso hijo llame a la función GetEnvironmentVariable, y saber el parámetro que le está pasando???