pagefile.sys est le fichier que Windows utilise comme extension sur disque
de la RAM physique. Quand le système d'exploitation manque de mémoire, le
gestionnaire de mémoire choisit des pages peu utilisées et les écrit dans ce
fichier afin de libérer de la RAM pour des charges plus actives. Lorsqu'une
adresse paginée est de nouveau sollicitée, la page est relue.
Il se trouve par défaut à C:\pagefile.sys, est marqué caché et
système, et reste ouvert et verrouillé par le noyau pendant toute la
durée du démarrage — c'est pourquoi vous ne pouvez pas simplement le copier
dans une session active. L'acquisition se fait à l'extinction, depuis une
image disque, ou en lisant le volume NTFS brut.
Ce qu'il contient
Le fichier est un dump brut des pages mémoire, 4 Ko chacune. Il n'y a ni en-tête, ni table des matières, ni métadonnées par page, ni ordre. Les pages ont été écrites dans le premier emplacement libre, donc deux pages consécutives sur disque appartiennent probablement à des processus différents.
En pratique, on y trouve :
- Des fragments de code exécutable (images PE, code JIT, shellcode).
- Des bins de ruches de registre (
hbinpaginés depuislsass,services, les ruches utilisateur). - Des enregistrements MFT, des pages de
$LogFile, du cache système. - Des bases SQLite (historiques de navigateur, clients mail).
- Du contenu documentaire — JSON, XML, texte brut, images.
- Des secrets en clair que le noyau ne pouvait pas savoir sensibles : mots de passe, jetons bearer, JWT, fichiers déchiffrés, lignes de commande.
Pourquoi cela intéresse les analystes
Un fichier d'échange est un des rares endroits où des données qui n'ont
existé qu'en mémoire persistent sur disque. Si l'analyste ne peut pas
acquérir la RAM à chaud, pagefile.sys est la meilleure fenêtre suivante
sur ce qui se passait quand la machine s'est arrêtée.
Pourquoi l'analyse est difficile
Comme le fichier n'a aucune structure, on ne peut pas le « parser » comme un journal d'événements. L'approche standard est le carving : scanner le fichier page par page, identifier chaque page par son contenu (octets magiques, profil statistique, densité de chaînes) et extraire ce qui survit. C'est exactement ce que fait cet outil — dans votre navigateur, via WebAssembly, sans envoi de données.