Usa explicit_bzero () per azzerare tutta la memoria

0

Funzioni come bzero () , explicit_bzero () e ZeroMemory sono progettate per eliminare dati sensibili dalla RAM (come le chiavi). Posso usare explicit_bzero () per cancellare l'intera RAM (ad esempio 2 GB di RAM)? È un approccio fattibile? C'è qualche tipo di limitazione significativa con questo, come il rallentamento o crash del sistema?

    
posta Kiavash Satvat 06.10.2017 - 15:37
fonte

2 risposte

1

Se potessi azzerare tutta la tua memoria, allora sì, causerebbe l'arresto immediato del sistema, dato che nessuno dei dati o del codice del sistema operativo esisterebbe più, il sistema non sarebbe in grado di continuare a funzionare in qualsiasi capacità.

Ma non saresti in grado di farlo solo chiamando bzero da un'applicazione userspace. Il kernel in genere limita l'accesso alla memoria di applicazioni all'interno del proprio spazio indirizzo, quindi questo non sarebbe consentito.

    
risposta data 06.10.2017 - 15:56
fonte
1

Queste sono funzioni dello spazio utente. Ciò significa che tutto ciò che è possibile cancellare lì riguarda solo il processo corrente e solo le pagine di memoria che appartengono al processo che sono scrivibili (cioè di solito nessun codice di programma). Cercando di eliminare la memoria non mappata nello spazio di indirizzamento del processo si bloccherà l'applicazione (cioè l'errore di segmentazione).

Can I use explicit_bzero() to delete entire RAM (e.g. 2 GB RAM)?

Poiché un processo non possiede l'intera RAM (il kernel lo fa), non può essere cancellato da un processo.

    
risposta data 06.10.2017 - 19:15
fonte

Leggi altre domande sui tag