Esplorazione dei contenuti della RAM


12

Sto usando un database redis e vorrei esplorare il contenuto della RAM utilizzata dall'applicazione.

Sento che la spiegazione del perché voglio farlo avrà più senso della domanda che vorrei porre.

Redis è un semplice archivio di valori chiave che memorizza dati binari. Penso che sarebbe un buon posto per esplorare cose come la codifica e sarebbe interessante per me fare cose come sfogliare la RAM alla ricerca di insiemi di dati binari, fare cose come cercare schemi semplici; forse esplorare l'idea di scrivere un linguaggio di query per bambini che cercasse nella RAM.

Avevo avuto questa idea dopo aver letto il capitolo in SICP sui linguaggi di query.

Qualche idea su da dove cominciare? Inizialmente, voglio chiedere "Dammi lo spazio degli indirizzi in cui questa applicazione è in esecuzione, per favore" al sistema.

Risposte:


7

Puoi usare gdb per accedere alla memoria di un processo.

Inoltre, dovresti dare un'occhiata al filesystem "/ proc" - contiene file pseudo per ogni processo; alcuni di essi potrebbero contenere informazioni interessanti


7

cat /proc/[pid]/maps secondo le manpage proc.

Sembra quello che vuoi. Se hai bisogno del pid, prendilo da ps o qualsiasi altro strumento.

Questo indirizza la ricerca dello spazio degli indirizzi in uso. Uno dei colleghi di Defcon dell'anno scorso ha implementato createremotethread su Linux. Quindi potresti farlo ... poi leggi la memoria arbitraria in quel modo.

Ringraziamo psusi per aver sottolineato che pmap -x [pid]è più facile da leggere.


3
Nota che pmapformatta queste informazioni in modo che siano più leggibili dall'uomo.
psusi

6

Usa un debugger, ecco a cosa servono.

Se vuoi lanciare il tuo, tutto passa ptrace.

È possibile visualizzare la mappa di memoria di un processo (il sommario per la memoria) /proc/$pid/mapse leggere l'intero contenuto della memoria /proc/$pid/mem. Non puoi semplicemente aprire quest'ultimo file normalmente, vedi Come posso leggere da / proc / $ pid / mem su Linux?


1
Sei stato incredibilmente utile con alcune delle mie domande. Suggerisci qualche libro da leggere in generale relativo al sistema operativo Linux o articoli web particolarmente interessanti?
MageProspero,
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.