Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

323
Vistas
¿Equivalente a VirtualProtectEx/CreateRemoteThread en Linux?

Me preguntaba si había una versión equivalente, ya sea en una biblioteca o como una llamada al sistema, de las API de Windows que permiten que un proceso interactúe con el espacio de otro proceso, lo que significaría modificar el flujo de ese segundo proceso. Esto es para inyectar un .so en un proceso en ejecución sin eliminarlo.

¡Gracias!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

tal vez eche un vistazo aquí: CreateRemoteThread en Linux

No conozco una forma más sencilla que la descrita allí. En Windows, tiene esta elegante API como VirtualProtectEx. En Linux, estaría escribiendo un .so que, por ejemplo, ejecuta pthread_create en una __attribute__((constructor)) . Entonces cargarías eso .so a través del mecanismo LD_PRELOAD.

Lo mejor después de CreateRemoteThread sería manipular el subproceso principal del proceso con la API de ptrace. Pero esto implicaría

  1. sosteniendo un hilo
  2. Guardando su contexto
  3. Establecer argumentos para pthread_create
  4. Establezca IP en pthread_create y ejecute
  5. Restaurar el contexto antiguo.

Creo que manipular los derechos de acceso a la memoria también implicaría llamar a mprotect desde un contexto de proceso. Como ya se mencionó anteriormente, la forma más sencilla de hacerlo no sería usar ptrace sino usar un objeto compartido precompilado.

over 4 years ago · Santiago Trujillo Denunciar

0

En Linux, existe un mecanismo estándar para inyectar su código en un programa. Básicamente, define una variable de entorno LD_PRELOAD que especifica una biblioteca .so que se carga antes que todos los demás archivos .so. Las funciones en ese .so reemplazarán las versiones estándar de las funciones. No hay necesidad de modificar el código ensamblador de las funciones manualmente para insertar ganchos en su propio código como en Windows.

Aquí hay un buen tutorial: https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker-tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda