È possibile interrompere deliberatamente la RAM usando i puntatori?

1

È possibile stressare intenzionalmente e rompere parte di un computer a livello meccanico usando la specificità di C / C ++ negli indirizzi di targeting? Tutto questo parlare di indirizzi e puntatori non è una semplice questione di logica astratta, in realtà stai inviando energia elettrica a specifiche aree del tuo computer.

Nella mia mente immagino qualcosa del genere: un indirizzo specifico viene scosso / risuonato. Potrebbe essere una domanda sciocca per un programmatore più avanzato, ma sono sicuro di non essere il primo novizio a pensarci.

    
posta Pipsqweek 28.12.2016 - 09:48
fonte

3 risposte

2

Sì, è sicuramente possibile su un sistema non progettato specificamente per l'attacco di RAM fisica in mente. In particolare, la maggior parte dei vecchi dispositivi Android è vulnerabile a un attacco che modifica un'area di memoria nel tentativo di capovolgere i bit nella regione target vicina, l'accesso diretto al quale viene negato dalle politiche di sicurezza.

link

La protezione abituale sarebbe quella di randomizzare la mappatura della memoria virtuale-fisica.

    
risposta data 29.12.2016 - 17:58
fonte
7

Generalmente no. *

Se provi a leggere o scrivere in memoria che non esiste, potrebbero verificarsi varie cose a seconda della tua piattaforma.

Per un tipico computer desktop, la tua memoria fisica reale è astratta dietro un livello di memoria virtuale. Quando il programma tenta di accedere a una posizione di memoria, il sistema operativo e il programma di mappatura della memoria virtuale mappano tale posizione alla sua posizione reale, che potrebbe non essere nemmeno nella memoria effettiva al momento. Se provi ad accedere a una posizione esterna a ciò che ti è stato assegnato, il sistema operativo lo saprà e farà cadere il martello sul tuo processo.

Se stai usando una piattaforma che non ha quella protezione della memoria, o stai scrivendo moduli del kernel del sistema operativo, ciò che accadrà dipenderà dalla piattaforma. La lettura di posizioni di memoria inesistenti potrebbe restituire 0, potrebbe restituire rumore elettrico casuale, potrebbe ancora sollevare una sorta di interruzione, dovrete leggere la scheda tecnica per sapere. Lo stesso vale per la scrittura.

Per memoria, non c'è davvero molto rischio di "inviare elettricità a specifiche aree del tuo computer" che non è destinato. Quando una porta USB non ha nulla collegato, il computer non blocca a prescindere la corrente di 500mA della porta. Lo stesso vale per la memoria, l'elettricità può essere inviata solo da qualche parte se c'è qualcosa a cui inviarla.

Ci sono alcune situazioni in cui potresti causare problemi fisici scrivendo su ram "using pointers". Alcune piattaforme hardware mappano i registri o gli I / O periferici in posizioni in memoria. Se ti capita di scrivere in quella memoria, potresti causare interazioni con il mondo reale per causare danni, come ad esempio agitarti con i controlli di alimentazione o di temperatura, accendere o spegnere i dispositivi collegati al computer, ecc. Questa modalità di accesso alle cose è tipicamente con cose come i microcontrollori, dove saprai meglio che leggere e scrivere su posizioni di memoria casuali.

* Molto di questo è semplificato, se vuoi i dettagli grezzi, controlla link

    
risposta data 28.12.2016 - 18:51
fonte
1

Nell'ambito dell'uso consentito dalla garanzia standard, no. I computer di uso generico sono progettati tenendo conto dell'accesso rapido e frequente alla memoria e sono presenti protezioni all'interno della macchina per evitare che si verifichino danni del genere.

Se overclocchi il tuo sistema è possibile fare danni, ma è più probabile che accada alla CPU e alla GPU che alla RAM: non c'è niente di speciale nell'uso del puntatore che li rende più "pericolosi" fisicamente. Per causare danni fisici a un dispositivo a stato solido, o hai bisogno di calore (che può derivare da cicli più veloci) o più alto voltaggio (che le persone fanno OC).

Io programma ma non ho mai OC (ho soldi quindi acquisto solo sistemi migliori), quindi oltre il mio livello di esperienza. Dovresti chiedere su link come altri hanno già notato.

    
risposta data 28.12.2016 - 19:11
fonte

Leggi altre domande sui tag