2012-05-10 8 views

Respuesta

-2

`pthread.h #include

int pthread_create (pthread_t * hilo, const pthread_attr_t * attr, void * (* start_routine) (void *), void * arg);` de compilación y enlace con - pthread.

ver pthread_create hombre para el detalle

+2

Así es como crear un hilo, no crear un hilo e inyectarlo en un proceso remoto. –

6

La forma tradicional de hacer esto en Linux sería la creación de una biblioteca dinámica (.so) con su código en él, a continuación, separado forzar la carga de tu biblioteca en la aplicación que se ejecuta . No existe una tienda de ventanilla única con CreateRemoteThread en Windows.

Así que aquí están los pasos básicos:

  1. Crear una dylib/para que contiene el código que desee ejecutar en el proceso remoto.
  2. Escriba un código muy simple en el ensamblado que cargue el archivo especificado (principalmente copie y pegue desde this link, parte 1).
  3. Incruste dicho cargador ASM como una carga binaria en un búfer en un segundo archivo de código/aplicación. Aquí utilizará ptrace para ejecutar la carga binaria escrita en el paso 2, que activará la aplicación de destino para llamar al _dl_open() en el .so creado en el paso 1, que contiene el código real que desea ejecutar. (Muestra dada en the same link, parte 2.)

Si necesita que su código se ejecute en un hilo separado de la bomba principal, entonces debería usar pthread_create en el código en el paso 1.

Esperanza esta responde tu pregunta Sí, es más complicado que en Windows; pero debería funcionar igual de bien. Además, puede reutilizar casi todo el código de los pasos 2 y 3 para futuros proyectos de inyección remota de código.