Forzar a todos los procesos de usuario a ser procesados

2

Estoy implementando una herramienta basada en ptrace para registrar el uso de llamadas al sistema. Es mucho más simple que strace, pero estoy haciendo esto para poder aprender cómo funcionan estas herramientas. Me gustaría rastrear todos los procesos de usuario desde que se crean. ¿Se puede lograr con ptrace?

    
pregunta Lehrling 01.04.2013 - 00:43
fuente

1 respuesta

0

Los nuevos procesos se crean con llamadas al sistema, a saber, fork() , vfork() y clone() . En estos días, las funciones de C correspondientes a estas llamadas se implementan con una llamada subyacente a clone() (la llamada real del sistema, como se ve desde el kernel), pero las otras dos llamadas del sistema aún están allí y pueden ser invocadas por cualquier proceso Un simple trozo de montaje.

Para rastrear todos los procesos de usuario, solo tiene que usar ptrace() e interceptar estas llamadas, para poder adjuntar a nuevos procesos inmediatamente después de su creación. Así es como funciona strace .

    
respondido por el Thomas Pornin 01.04.2013 - 15:19
fuente

Lea otras preguntas en las etiquetas