Aqui se detalla como : http://www.phrack.org/show.php?p=51&a=5
Obviamente es un procedimiento muy truculento :-) El jue, 24-06-2004 a las 17:45, Ricardo Mun~oz A. escribió: > El jue, 24-06-2004 a las 16:43, Paulo Seguel escribió: > > Carlos Manuel Duclos Vergara wrote: > > [...] > > > > el problema es que es una imposibilidad "fisica"! > > > el proceso B (ls -lR en este caso) fue creado por el proceso A (bash o el > > > shell correspondiente). Una vez que B esta en ejecucion A no puede > > > acceder > > > a su espacio de memoria y redireccionar la salida hacia otro lado. Si lo > > > haces al momento de iniciar la ejecucion lo que hara A es cambiar antes > > > de > > > hacer un exec los descriptores de archivo para la salida o la entrada > > > (segun sea lo que necesites) y despues de eso hara el exec. Fork utiliza > > > los descriptores de archivo del padre (bueno, depende de si estas > > > sobre linux o un bsd), entre los que se cuentan los de salida/entrada > > > estandar y exec se encarga del resto de la memoria y esos detalles. > > > Quizas > > > si el shell usase vfork se lograria algo (vfork no copia nada, crea todo > > > nuevo, es por eso que fork en uclinux no funciona y vfork si funciona) > > > pero tambien lo veo dificil. Tu unica opcion seria acceder maliciosamente > > > a la memoria y cambiar las estructuras de datos del kernel para permitir > > > ese funcionamiento. > > > > Me quedo claro, pero entonces como los procesos que estan a la salida de > > otro pueden comunicarse? > > tuberias,memoria compartida,fifos,etc.

