¿Cómo vuelco la memoria física en Linux?

22

¿Cómo se podría crear un volcado de la memoria física (RAM) en Linux?

¿Qué software, si hay alguno, está disponible para este propósito?

He leído que no se debe escribir en un disco local, sino enviar los datos a través de la red. Alguien sabe las peculiaridades aquí? ¿Funcionaría Ethernet para este propósito, o hay algún comando que minimice la cantidad de almacenamiento en caché antes de enviarlo al disco?

WinHex en Windows tiene dicha funcionalidad:

ingrese la descripción de la imagen aquí

Estoy buscando algo similar en Linux.

Anónimo
fuente

Respuestas:

22

Aquí hay una página de eHow sobre cómo volcar la memoria de Linux

Linux proporciona dos dispositivos virtuales para este propósito, ' /dev/mem' y ' /dev/kmem', aunque muchas distribuciones los desactivan por defecto por razones de seguridad. ' /dev/mem' está vinculado a la memoria del sistema físico, mientras que ' /dev/kmem' se asigna a todo el espacio de memoria virtual, incluido cualquier intercambio. Ambos dispositivos funcionan como archivos normales y se pueden usar con dd o cualquier otra herramienta de manipulación de archivos.

Eso lleva a la página ForensicsWiki en Memory Imaging Tools con la sección Linux / Unix ,

  1. dd En sistemas Unix, el programa dd puede usarse para capturar el contenido de la memoria física utilizando un archivo de dispositivo (por ejemplo, / dev / mem y / dev / kmem). En los núcleos de Linux recientes, / dev / kmem ya no está disponible. En núcleos aún más recientes, / dev / mem tiene restricciones adicionales. Y en el más reciente, / dev / mem ya no está disponible por defecto. A lo largo de la serie 2.6 del núcleo, la tendencia ha sido reducir el acceso directo a la memoria a través de archivos de pseudodispositivos. Consulte, por ejemplo, el mensaje que acompaña este parche: http://lwn.net/Articles/267427/ . En los sistemas Red Hat (y distribuciones derivadas como CentOS), el controlador de bloqueo se puede cargar para crear un pseudodispositivo para el acceso a la memoria ("bloqueo de la sonda mod").
  2. Segunda mirada Este producto de análisis de memoria comercial tiene la capacidad de adquirir memoria de sistemas Linux, ya sea localmente o desde un objetivo remoto a través de DMA o a través de la red. Viene con módulos precompilados del Controlador de acceso a memoria física (PMAD) para cientos de núcleos de las distribuciones de Linux más utilizadas.
  3. Idetect (Linux)
  4. fmem (Linux)
    fmem es un módulo del núcleo, que crea el dispositivo / dev / fmem, similar a / dev / mem pero sin limitaciones. Este dispositivo (RAM física) se puede copiar usando dd u otra herramienta. Funciona en 2.6 núcleos de Linux. Bajo GNU GPL.
  5. Goldfish
    Goldfish es una herramienta forense en vivo de Mac OS X para uso exclusivo de la policía. Su objetivo principal es proporcionar una interfaz fácil de usar para volcar la RAM del sistema de una máquina de destino a través de una conexión Firewire. Luego extrae automáticamente la contraseña de inicio de sesión del usuario actual y cualquier fragmento abierto de conversación de AOL Instant Messenger que pueda estar disponible. La aplicación de la ley puede comunicarse con goldfish.ae para descargar información.

Ver también: Análisis de memoria de Linux .
También hay GDB comúnmente disponible en la mayoría de Linux.
Y, siempre se recomienda evitar escribir sobre memoria desconocida, ya que puede provocar daños en el sistema.

nik
fuente
1
¿Alguien ha intentado esto en un sistema Ubuntu reciente?
1
no / dev / mem o / dev / kmem en mi sistema Debian.
Rob
Lo acabo de hacer en mi VM CentOS 7.x.
slm
4

La volatilidad parece estar funcionando bien y es compatible con Windows y Linux.

Desde su sitio web:

Volatility admite volcados de memoria de todas las versiones y paquetes de servicio principales de Windows de 32 y 64 bits, incluidos XP, 2003 Server, Vista, Server 2008, Server 2008 R2 y Seven. Ya sea que su volcado de memoria esté en formato sin procesar, un volcado de memoria de Microsoft, un archivo de hibernación o una instantánea de máquina virtual, Volatility puede trabajar con él. Ahora también admitimos volcados de memoria de Linux en formato sin formato o LiME e incluye más de 35 complementos para analizar núcleos de Linux de 32 y 64 bits desde 2.6.11 - 3.5.xy distribuciones como Debian, Ubuntu, OpenSuSE, Fedora, CentOS y Mandrágora. Admitimos 38 versiones de volcados de memoria Mac OSX de 10.5 a 10.8.3 Mountain Lion, tanto de 32 como de 64 bits. Los teléfonos Android con procesadores ARM también son compatibles.

Patel95
fuente
0

Como confirmación pude volcar la memoria de mi VM CentOS 7.x usando este método:

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |[email protected]...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

Dado que este 55aah ocurre en el rango c0000h-effffh, es probable que sea el encabezado de expansión PNP:

Referencia: especificación de arranque del BIOS

3.3 Dispositivos con encabezados de expansión PnP

Todos los dispositivos IPL con ROM de opción deben contener un encabezado de ROM de opción válido que se encuentre entre las direcciones de memoria del sistema C0000h y EFFFFh en un límite de 2k y comience con 55AAh. El arranque de un dispositivo solo se puede controlar si tiene un encabezado de expansión PnP. El encabezado de expansión, cuya dirección reside dentro del encabezado ROM de opción estándar en offset + 1Ah, contiene información importante utilizada para configurar el dispositivo. También contiene punteros para codificar en la ROM de opción del dispositivo (BCV o BEV) que el BIOS llamará para arrancar desde el dispositivo. Consulte el Apéndice A para ver la estructura del encabezado de expansión PnP. Hay dos formas de iniciar un dispositivo IPL con un encabezado de expansión PnP. Debe contener un BCV o un BEV.

Referencias

slm
fuente