pagefile.sys es una mina de oro — y una trampa. Lo que lo hace útil (un
volcado en bruto de memoria paginada) es también la fuente de cada
limitación.
Sin atribución a procesos
Una página del pagefile no puede, por sí sola, asociarse a un proceso. El mapeo página → (Proceso, DirecciónVirtual) vive en las Page Table Entries (PTE) en RAM. Sin un dump de RAM correspondiente, se lee contenido pero no contexto. Por eso Volatility no procesa el pagefile directamente — necesita las PTE de una imagen de RAM.
Sin reensamblado de asignaciones
Una asignación mayor de 4 KB se paginó en páginas distintas hacia los
huecos que estaban libres. Dos páginas adyacentes en pagefile.sys casi
nunca están relacionadas. El carving recupera aciertos por página; rara
vez reconstruye un archivo completo.
Compresión de memoria en Windows 10+
Desde Windows 10, el CompressionStoreManager comprime en RAM las
páginas frías antes de cualquier I/O a disco. El algoritmo es
Xpress-Huffman (CompressionFormat 4).
Cuando una página así se escribe, los bytes comprimidos van a
pagefile.sys. Una búsqueda de cadenas se pierde el contenido. La
descompresión exige parsear la tabla de longitudes de códigos Huffman —
no trivial en WebAssembly y aún no implementado aquí. El paper de
Blackhat 2019 "Paging All Windows Geeks" documenta el algoritmo.
Esta herramienta detecta y marca los bloques probables Xpress-Huffman; la descompresión queda como trabajo futuro.
Paginación selectiva
No todo lo paginado va a pagefile.sys: también existen swapfile.sys
(apps UWP) y hiberfil.sys (snapshot de RAM al hibernar).
Volátil, frágil, parcial
Los datos pueden ser sobrescritos en el siguiente ciclo de paginación.
Un pagefile.sys es una instantánea de un momento, no un log
append-only.
Lo que queda en pie
Aun así, pagefile.sys revela con regularidad: credenciales en claro,
URLs e IPs de C2, líneas de comando de procesos efímeros, fragmentos de
colmenas borradas, contenido documental que de otro modo se perdería.
Para triage suele ser suficiente.