Saltar al contenido
← Volver al blog

Volatility + pagefile.sys: emparejándolos para forense de memoria completo

20/5/2026 · 5 min de lectura

Volatility (y su hermano más reciente MemProcFS) son las herramientas estándar para forense de memoria en Windows. La mayoría de analistas las usan contra un dump de RAM en solitario. Lo que se les escapa es que ambas pueden leer pagefile.sys si se lo das — y hacerlo expande dramáticamente lo que puedes recuperar.

Por qué Volatility no puede usar el pagefile solo

El trabajo de Volatility es recorrer las estructuras de datos del kernel de una imagen de memoria capturada: listas EPROCESS, page-table entries (PTEs), pools del kernel, buffers de red. Todo eso vive en RAM — nada de eso está en el pagefile.

El pagefile por sí solo es solo contenido: frames crudos de memoria de 4 KB sin atribución. Volatility no sabe qué slot pertenece a qué proceso, a qué dirección virtual, ni siquiera qué tipo de memoria es (heap, stack, archivo mapeado).

Por eso herramientas autónomas como este parser toman un enfoque de carving — mirando el contenido en solitario vía firmas de bytes mágicos. Ver el post de limitaciones para la explicación completa.

Qué cambia cuando tienes ambos

Cuando le das a Volatility un dump de RAM y el pagefile correspondiente, puede:

  1. Recorrer las PTEs en RAM para averiguar a qué proceso y dirección virtual mapea cada slot del pagefile.
  2. Leer páginas paginadas bajo demanda durante la ejecución del plugin — así que un escaneo de procesos, un pslist, un cmdline, un vadinfo, un dumpfiles obtienen todos el contenido completo incluso para regiones de memoria que se han paginado.
  3. Ejecutar plugins que antes fallaban o eran parciales: pstree, cmdline, dlllist, handles, consoles, cmdscan — todos pasan a estar completos.

En la práctica, el pagefile se monta como almacenamiento de respaldo para la imagen de memoria.

Sintaxis de Volatility 3

# Sin pagefile (el contenido paginado se pierde)
vol -f memory.dmp windows.pslist

# Con pagefile (el contenido paginado se trae)
vol -f memory.dmp \
    --layer "Stacker.layer0:PageFile=pagefile.sys" \
    windows.pslist

La sintaxis --layer te permite apilar una PagefileLayer sobre la capa de memoria física, y la traducción de Volatility caerá a ella cuando una PTE tenga el bit Pagefile puesto.

Nota: la CLI exacta para apilar capas de pagefile ha ido evolucionando entre versiones menores de Volatility 3; consulta vol --help y la ayuda -h de windows.info en tu build.

Sintaxis de Volatility 2

Legado pero todavía muy usado:

vol.py -f memory.dmp --profile=Win10x64_19041 \
    --pagefile pagefile.sys \
    pslist

El flag --pagefile funciona con la mayoría de perfiles Win64 / Win10. Para perfiles más antiguos, el flag puede no estar soportado.

Sintaxis de MemProcFS

MemProcFS expone la superficie de análisis como un sistema de archivos virtual en el que puedes hacer cd:

MemProcFS.exe -device memory.dmp -pagefile0 pagefile.sys

El parámetro pagefile0 acepta una ruta; pagefile1, pagefile2, … pueden usarse para pagefiles adicionales (servidores multi-volumen).

Una vez montado, rutas como:

M:\pid\1234\virt2phys.txt
M:\pid\1234\memory.vmem
M:\pid\1234\modules\…

…devuelven contenidos con los datos paginados rellenados desde el pagefile de forma transparente.

Cuándo usar cada herramienta

ObjetivoMejor herramienta
Recorrer procesos, módulos, handles, conexiones de redVolatility 3 (con --layer PageFile=)
Montar memoria como sistema de archivos; triage interactivoMemProcFS
Carvear contenido de un pagefile sin un dump de RAMEste parser
Buscar cadenas + IOCs en pagefile sin dump de RAMEste parser
Descifrar secretos de LSASS desde RAMpypykatz / mimikatz / plugins de Volatility

Un triage completo de IR suele implicar las tres: captura de RAM para análisis vivo, pagefile para contenido paginado y un barrido de cadenas para los IOCs rápidos.

Workflow práctico

Un flujo razonable de principio a fin en un host Windows:

  1. Adquiere RAM (DumpIt, WinPMem, Magnet RAM Capture).
  2. Adquiere pagefile.sys (ver el post dedicado).
  3. Adquiere hiberfil.sys si existe (por qué) — es una segunda imagen de memoria más rica.
  4. Apaga, imagina el disco.
  5. Primera pasada: suelta el pagefile en este parser para un barrido rápido de IOCs — URLs, IPs, líneas de comandos, credenciales. Esta es la vía más rápida para responder "¿hay algo obviamente malo aquí?".
  6. Segunda pasada: ejecuta MemProcFS con el dump de RAM + pagefile. Recorre procesos, vuelca LSASS, comprueba conexiones de red, examina drivers.
  7. Tercera pasada: plugins de Volatility 3 para cualquier cosa que MemProcFS no cubra (plugins personalizados, extractores específicos para familias de malware).
  8. Cross-referencia los hallazgos carveados contra logs EDR / Sysmon / EVTX para anclaje temporal.

¿Y si solo tienes el pagefile?

Habitual en casos donde la captura en vivo no fue posible (bloqueado, BitLocker sin clave de recuperación, el atacante ya había apagado, etc.):

  • Volatility / MemProcFS son en gran medida inútiles sin una imagen de RAM correspondiente.
  • Este parser es tu herramienta. Carving + cadenas + artefactos producirá la señal más fuerte alcanzable desde el pagefile solo.
  • La calidad de recuperación es solo-contenido, no contexto — ver las limitaciones.

¿Y si solo tienes el dump de RAM?

Habitual en forense de nube / VM, donde el pagefile vive en el volumen del hipervisor anfitrión y no es fácilmente accesible:

  • Volatility / MemProcFS funcionan, pero cualquier dirección paginada devuelve cero.
  • Algunos plugins fallan parcialmente; otros no se ven afectados (cualquier cosa que solo toque pools no-paginados del kernel).
  • El pagefile es el suplemento que convierte una imagen de memoria parcial en una completa.

Los crash dumps como híbrido

MEMORY.DMP de un crash de kernel es estructuralmente similar a un dump de RAM y Volatility lo lee de forma nativa (--profile=… más el archivo). No incluye contenido del pagefile. Empáralo con pagefile.sys igual que harías con una captura en vivo.

Relacionado