Si C usa bibliotecas compartidas, ¿es posible escribir un programa que modifique el código que abre un archivo?

1

Si C usa bibliotecas compartidas, ¿es posible escribir un programa que modifique la función fopen para ejecutar un código malicioso? ¿Cómo puede el sistema operativo proteger al usuario de esto?

    
pregunta Faminha102 30.10.2018 - 02:20
fuente

2 respuestas

1

Sí, eso es posible. Esta técnica se llama función de enganche. De hecho, puede completamente controlar un ejecutable enlazando, por ejemplo, __libc_start_main y redirigiendo la ejecución al código en la biblioteca. No hay absolutamente ninguna manera de que un sistema operativo pueda proteger un ejecutable de una biblioteca maliciosa. El código en la biblioteca se ejecutará en el mismo espacio de direcciones que el ejecutable y tendrá exactamente las mismas capacidades. La única forma de proteger un ejecutable de una biblioteca maliciosa es no vincularlo con bibliotecas maliciosas.

    
respondido por el forest 30.10.2018 - 02:53
fuente
0

Además, para que quede claro: cuando modifica una biblioteca compartida en la memoria, solo se modifica la copia de ella en el espacio de direcciones del proceso de su . Ni la copia en el disco ni las copias en uso por otros procesos se modificarán. Es lo mismo que modificar una variable global en un proceso (como errno ); solo el proceso que utiliza ese espacio de direcciones "verá" la modificación.

    
respondido por el CBHacking 11.11.2018 - 03:58
fuente

Lea otras preguntas en las etiquetas