Come leggere i dati dalla RAM?


4

So che questa è una domanda vaga. Per favore accetta le mie scuse ma sto cercando di ottenere una risposta per questa domanda.

Volevo sapere se c'è un modo per i dati attuali dalla RAM? Ad esempio: - Ho un'applicazione In-Memory in esecuzione e volevo sapere quale set di dati contiene. Qualsiasi suggerimento su questo sarebbe di grande aiuto.

Grazie in anticipo.


questo collegamento potrebbe essere di aiuto superuser.com/questions/226961/...
Itachi Uchiha

Mi sembra di ricordare anni fa è possibile utilizzare una variante ADD modificata per eseguire il dump del contenuto di un'installazione di Windows in esecuzione. Questa pagina wiki forensics potrebbe essere un inizio
Journeyman Geek

Risposte:


2

Imposta il computer in modalità di sospensione e avvialo con un livecd o liveusb. Afair il pagefile.sys e hiberfil.sys sono costruiti da 4k pagine e conterranno la memoria utilizzata dalle vostre applicazioni e finestre. Puoi guardare sia il binwalk che la volatilità. Non posso davvero dirti cosa va dove e perché. È sempre sembrato molto casuale. Riesco a trovare solo i frammenti di memoria che voglio mettendo qualcosa di simile a longunoquest nella memoria del programma (ma non è questo il modo giusto sono sicuro). In alternativa puoi semplicemente collegare un debugger al tuo programma (ida), ma Ive usa solo gdb. Cerca alcune guide di ida. Spero che sia d'aiuto.


1

Nei moderni sistemi operativi, gli accessi alla RAM sono separati tra i processi. Pertanto non è possibile creare una semplice applicazione per dare un'occhiata ai dati di un altro programma in esecuzione. Per fare ciò dovrai programmare in modalità kernel o usare le funzioni di debug del sistema operativo specifico.


Grazie per l'input. In questo esempio, sto guardando Windows come esempio. Di quali competenze ho bisogno per eseguire il debug o scrivere il programma in modalità kernal? Posso usare un linguaggio di basso livello come C ++ per visualizzare i dati? Grazie ancora per il vostro aiuto.
VD27

@ user400336 - I puntatori sono la cosa più vicina che si può ottenere dall'hardware.
Ramhound

L'interfaccia di programmazione delle applicazioni di debug può essere un buon punto di partenza msdn.microsoft.com/en-us/library/ms809754.aspx
user3767013

1

Hai taggato Windows, sì è possibile (almeno nel caso generale di un utente sul proprio computer con diritti di amministratore).

Un sacco di cheat engine (non collegherò nessuno dato che non sono sicuro al 100% che sono sicuro, ma ne ho usato uno per la ricerca) ti permetterò di cercare nella memoria di un processo in esecuzione per un dato valore, o sfogliare attraverso esso. Questi valori possono quindi essere modificati, o "bloccati", che credo sia fatto semplicemente facendo in modo che il programma scriva ripetutamente il valore richiesto molto rapidamente per annullare eventuali modifiche.


Quello chiamato letteralmente "Cheat Engine" funziona abbastanza bene e fino ad ora non lo è stato infedele ai suoi utenti.
Kroltan

0

Per Windows precedente era possibile che un programma leggesse o copi o cercasse nella RAM (probabilmente escludendo il kernel speciale contrassegnato con aree "segrete").

Una volta ho usato un programma simile in WinXP (forse anche uno più vecchio) per trovare ore di lavoro che erano quasi perse quando un programma si arrestava in modo anomalo prima di salvarlo sul disco. Era in grado di cercare attraverso ram, trovare i dati non scritti ancora in attesa lì, copiarlo e giurare di farlo SEMPRE RISPONDERE DISPONIBILE SPESSO nel futuro.

Non sono sicuro delle attuali versioni di Windows, penserei che sia possibile in qualche modo, specialmente se non si guarda nella ram protetta / protetta, se sei il superuser / root. Ci dovrebbe essere ancora un programma disponibile per cercare ram, da qualche parte.


[FYI, appena letto su una caratteristica di linux pulito in /dev/mem sembra essere un link diretto per leggere facilmente ram, ma non sembra essere quello che sembra; non ricerca facilmente le parole / stringhe e causa voci di registro come "Le stringhe di programma provano ad accedere a / dev / mem tra 100000 e 101000".]


0

Si utilizza un debugger, come quello di Microsoft Visual Studio. Puoi collegarti al processo e dare un'occhiata alla sua memoria, ai thread che sta eseguendo e alle istruzioni di assemblaggio che stanno eseguendo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.