Explorando el contenido de RAM


12

Estoy usando una base de datos redis y me gustaría explorar el contenido de la RAM que está usando la aplicación.

Siento que la explicación de por qué quiero hacer esto tendrá más sentido que la pregunta que haría.

Redis es un simple almacén de valores clave que almacena datos binarios. Creo que sería un buen lugar para explorar cosas como la codificación y sería interesante para mí hacer cosas como navegar por la RAM en busca de conjuntos de datos binarios, hacer cosas como buscar patrones simples; tal vez explore la idea de escribir un lenguaje de consulta para bebés que haya buscado en la RAM.

Se me ocurrió esta idea después de leer el capítulo en SICP sobre lenguajes de consulta.

¿Alguna idea sobre por dónde empezar? Inicialmente, quiero preguntar al sistema "Déme el espacio de direcciones en el que se ejecuta esta aplicación, por favor".

Respuestas:


7

Puede usar gdb para acceder a la memoria de un proceso.

Además, debe echar un vistazo al sistema de archivos "/ proc", que contiene pseudo archivos para cada proceso; algunos de ellos pueden contener información interesante


7

cat /proc/[pid]/maps de acuerdo con las páginas de manual de proc.

Parece lo que quieres. Si necesita el pid, tome eso de ps o cualquier otra herramienta.

Eso aborda encontrar el espacio de direcciones en uso. El año pasado, uno de los miembros de defcon implementó createremotethread en linux. Entonces podrías hacer eso ... luego leer la memoria arbitraria de esa manera.

Gracias a psusi por señalar que pmap -x [pid]es más fácil de leer.


3
Tenga en cuenta que pmapformatea esta información para que sea más legible para los humanos.
psusi

6

Use un depurador, para eso están.

Si quieres rodar el tuyo, todo pasa ptrace.

Puede ver el mapa de memoria de un proceso (la tabla de contenido de la memoria) /proc/$pid/mapsy leer todo el contenido de la memoria /proc/$pid/mem. No puede abrir ese último archivo normalmente, vea ¿Cómo leo desde / proc / $ pid / mem en Linux?


1
Has sido increíblemente útil con algunas de mis preguntas. ¿Sugiere algún libro para leer generalmente relacionado con el sistema operativo Linux o artículos web particularmente interesantes?
MageProspero
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.