Volcar la memoria de un proceso de Linux a un archivo

Pregunta:

¿Es posible volcar la memoria actual asignada para un proceso (por PID) a un archivo? ¿O leerlo de alguna manera?

Respuesta:

No estoy seguro de cómo volcar toda la memoria en un archivo sin hacer esto repetidamente (si alguien conoce una forma automatizada de hacer que gdb haga esto, hágamelo saber), pero lo siguiente funciona para cualquier lote de memoria suponiendo que lo sepa el pid:

$ cat /proc/[pid]/maps

Esto tendrá el formato (ejemplo):

00400000-00421000 r-xp 00000000 08:01 592398                             /usr/libexec/dovecot/pop3-login
00621000-00622000 rw-p 00021000 08:01 592398                             /usr/libexec/dovecot/pop3-login
00622000-0066a000 rw-p 00622000 00:00 0                                  [heap]
3e73200000-3e7321c000 r-xp 00000000 08:01 229378                         /lib64/ld-2.5.so
3e7341b000-3e7341c000 r--p 0001b000 08:01 229378                         /lib64/ld-2.5.so

Elija un lote de memoria (por ejemplo, 00621000-00622000) luego use gdb como raíz para adjuntar al proceso y volcar esa memoria:

$ gdb --pid [pid]
(gdb) dump memory /root/output 0x00621000 0x00622000

Luego analice / root / output con el comando strings, a menos que desee el PuTTY en toda su pantalla.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım