C'è un modo per vedere il contenuto della memoria RAM? Dal primo byte fino all'ultimo. Vorrei vedere dove si trovano il sistema operativo e tutti i processi in esecuzione su di esso nella RAM. È possibile?
C'è un modo per vedere il contenuto della memoria RAM? Dal primo byte fino all'ultimo. Vorrei vedere dove si trovano il sistema operativo e tutti i processi in esecuzione su di esso nella RAM. È possibile?
Risposte:
È possibile utilizzare un debugger del kernel, che consentirebbe l'accesso alla memoria "raw", come SoftICE per Windows . Puoi anche configurare GDB in modo che funga da debugger per il kernel Linux . Se una macchina virtuale è un'opzione, alcuni software di virtualizzazione supportano il salvataggio dello stato della macchina (compresa la RAM) su disco, che può quindi essere ulteriormente analizzato . Va notato, tuttavia, che la maggior parte dei sistemi operativi "moderni" utilizzano la randomizzazione del layout dello spazio degli indirizzi (ASLR). La vera mappa della memoria fisica del sistema è volutamente frammentata per aiutare a mitigare vari problemi di sicurezza e exploit (es . Overflow del buffer stack / heap ).
Per un determinato programma in esecuzione in un moderno sistema operativo, tuttavia, è possibile ottenere una mappa di memoria logica per un determinato processo / thread, purché si disponga dei simboli e del debugger appropriati. Se si desidera una vista generale, se il software / hardware utilizza la memoria virtuale , la situazione diventa drasticamente più complessa. Ancora una volta, però, se vuoi letteralmente ciò che è solo sulla RAM, vedi il primo paragrafo.
Su Windows, è possibile accedere al contenuto della memoria fisica tramite l' \Device\PhysicalMemory
oggetto nel Gestore oggetti . Ciò richiede l'accesso a livello di kernel al sistema, il che significa che sarebbe necessario installare un programma, molto probabilmente un driver in modalità kernel, per accedere a questo oggetto.
Su Linux, è possibile accedere direttamente al contenuto della memoria fisica come dati binari leggendo /dev/mem
come root
. Vedi Cos'è / dev / mem? e la mem(4)
pagina man per maggiori dettagli.
Non sono sicuro del motivo per cui è necessario determinare dove si trovano il sistema operativo e i processi nella memoria fisica, sebbene ...
\DevicePhysicalMemory
oggetto non può essere aperto dalla modalità utente. RAMmap e la maggior parte degli altri strumenti sysinternals includono un driver in modalità kernel per svolgere quella parte del loro lavoro.