elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 17:40  


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado (Moderadores: ANELKAOS, TRICKY)
| | |-+  Procesos hijo y memoria
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Procesos hijo y memoria  (Leído 2,200 veces)
llamamecomoquieras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Procesos hijo y memoria
« en: 21 Mayo 2008, 12:51 »

Buenas,

mi problema es el siguiente:

Un programa A ejecuta un programa B, y mediante ésto, el programa B puede conectarse a una maquina que tiene fijada, pasando el login de forma satisfactoria. En cambio, si ejecutamos B directamente, el programa no logra pasar del login.
Mi hipotesis es que el programa A, al tener a B como hijo, tiene la memoria del segundo disponible, y le provoca algun cambio de forma que B puede pasar el login. Tal vez alguna clave de cifrado o contraseña interna.

Mi pregunta vendría a ser si es posible detectar los offsets que modifica el programa A al programa B. Los debuggers estan descartados, ya que el programa A va cifrado con Themida.

Alguna idea?

Gracias de antemano ;)
En línea
Ertai
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.026


Ralph Wiggum


Ver Perfil
Re: Procesos hijo y memoria
« Respuesta #1 en: 21 Mayo 2008, 13:24 »

Los procesos no comparten memoria.

Pipes?
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
llamamecomoquieras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Procesos hijo y memoria
« Respuesta #2 en: 22 Mayo 2008, 11:40 »

Cierto, que los procesos no comparten memoria es de las cosas que nunca me acuerdo >_<

Hay alguna forma de monitorizar estas pipes, si son realmente lo que hay? Tenia pensado sustituir el programa B por otro, que escribiera lo que se recibe por la pipe... pero por desgracia estoy en entorno Windows y no se como hacerlo.
En línea
ANELKAOS
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.049


#include<nda.h>


Ver Perfil WWW
Re: Procesos hijo y memoria
« Respuesta #3 en: 22 Mayo 2008, 14:14 »

Pues si realmente son pipes en local y deberás hacerlo de forma asíncrona por lo que puedes monitorizarlas con ReadFile.
En línea

llamamecomoquieras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Procesos hijo y memoria
« Respuesta #4 en: 23 Mayo 2008, 10:29 »

Bien, he estado documentandome sobre esa API. Tratándose realmente de una pipe entre los 2 procesos, la cuestion ahora es saber:

1- Si se trata de una pipe anónima o una named pipe (aunque no se si en Windows funciona igual que en Linux), y
2- Cómo averiguar el identificador de esa pipe e interceptarla. En teoría si fuera una named pipe ya sólo habría que lanzar ReadFile hacia dicha pipe e ir leyendo lo que recibimos.

Gracias por la ayuda, llevo bastante tiempo con este reto :P

EDIT: Olvide comentar que el programa B es ajeno al programa A, o sea, que no sabe de su existencia.
« Última modificación: 23 Mayo 2008, 10:59 por llamamecomoquieras » En línea
llamamecomoquieras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Procesos hijo y memoria
« Respuesta #5 en: 26 Mayo 2008, 13:46 »

Perdon por el doble post, pero así se marca como no-leído.

El tema de poderlo debugar ya está resuelto. He estado revisando el tema de las pipes, y creo que no es el sistema que se usa, ya que en teoría no se sabe el funcionamiento interno del programa B (el cual, si se cierra el programa A, éste tambien lo hace).

Voy a hecharle un vistazo a los manuales que teneis de debugging (es mi primera vez xD). Si a alguno se le ocurre algo se agradecerá.

A ver si dejo de insistir con esto :P
En línea
Rozor

Desconectado Desconectado

Mensajes: 269


As I Walk Through The Valley Of The Shadow Of Dead


Ver Perfil WWW
Re: Procesos hijo y memoria
« Respuesta #6 en: 27 Mayo 2008, 20:32 »

mmm.... alomejor la idea es un poco loca y no funcione ( no lo he probado xDDD ), pero y si haces las variables a las que quieras llegar o modificar globales ( en el b ) he injectas un hilo ( con a ) ?¿. O tambien si es solo para el envio de una cadena puedes usar la ventana ( invisible si lo quieres ).

Como pregunta aunuque me imagino que si, no se podria hacer un metodo de busqueda de memoria vacia ( esto si ) y que donde encontrara hueco la usara ( esto tambien ), luego le añades 3 offset como prefijo para reconocer donde se aloja ("\x56\x09\x87" ) y desde b buscas en memoria los 3 primeros bytes y lees los X siguiente

Tampoco he echo nunca esto, pero seria posible o falla algo? ( obviamente habria que controlar la memoria etc..... )


Memory Corrupt x"DDDDDDDDDDDD
En línea

out in the streets they call it murder....
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comunicacion entre procesos hijo en C
Programación C/C++
PeKiN 3 1,201 Último mensaje 29 Marzo 2011, 00:16
por Akai
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines