Se C usa librerie condivise, è possibile scrivere un programma che modificherà il codice che apre un file

1

Se C utilizza librerie condivise, è possibile scrivere un programma che modificherà la funzione fopen per eseguire un codice dannoso? In che modo il sistema operativo può proteggere l'utente da questo?

    
posta Faminha102 30.10.2018 - 02:20
fonte

2 risposte

1

Sì, è possibile. Questa tecnica è chiamata hook alla funzione. In effetti, puoi completamente controllare un eseguibile agganciando, diciamo, __libc_start_main e reindirizzando l'esecuzione al codice nella libreria. Non è assolutamente possibile che un sistema operativo possa proteggere un eseguibile da una libreria dannosa. Il codice nella libreria verrà eseguito nello stesso spazio di indirizzamento dell'eseguibile e avrà le stesse identiche capacità. L'unico modo per proteggere un eseguibile da una libreria dannosa è non collegarlo alle librerie dannose.

    
risposta data 30.10.2018 - 02:53
fonte
0

Inoltre, per essere chiari: quando modifichi una libreria condivisa in memoria, viene modificata solo la sua copia nello spazio di indirizzamento tuo processo. La copia sul disco e le copie in uso da altri processi non verranno modificate. È lo stesso che modificare una variabile globale in un processo (come errno ); solo l'unico processo che utilizza quello spazio indirizzo "vedrà" la modifica.

    
risposta data 11.11.2018 - 03:58
fonte

Leggi altre domande sui tag