Formats de fichier d'image mémoire expliqués (.mem, .raw, .vmem, LiME)
4 min de lecture
La forensique mémoire commence par l'acquisition, et le format du fichier résultant détermine ce qu'un outil peut en faire. Version courte : tout ce où l'adresse physique égale le décalage fichier est facile, et ramparser lit aussi nativement quelques conteneurs structurés (LiME, AVML compressé, crash dumps Windows 64 bits). Le reste (fichier d'hibernation, crash dump 32 bits, AFF4) nécessite une passe de conversion d'abord.
Images brutes / physiques : les mieux supportées
Une image mémoire physique brute est une copie plate, octet par
octet, de la RAM : l'adresse physique N est au décalage fichier N.
Chaque analyseur mémoire moderne est construit autour de cette
disposition.
.mem/.raw/.bin: images brutes génériques depuis DumpIt, FTK Imager, Magnet RAM Capture (mode par défaut), winpmem (--format=raw)..vmem: mémoire physique d'un invité VMware. Effectivement brute. Mettez la VM en pause et prenez le.vmemdu répertoire de la VM.- LiME (
.lime) : format Linux Memory Extractor. Charge utile brute avec petits en-têtes de sections ; la plupart des analyseurs le lisent directement. C'est aussi ce qu'AVML écrit par défaut. - AVML compressé :
avml --compressstocke chaque bloc de 16 Mio au plus sous forme de flux Snappy derrière un en-têteAVML. ramparser décompresse les blocs à la volée pendant la lecture, sans passeavml convert.
Crash dumps Windows 64 bits : supportés nativement
Un crash dump Windows (MEMORY.DMP, ou un .dmp écrit par DumpIt,
WinDbg .dump /f, livekd ou l'option crash dump de FTK Imager)
commence par un en-tête PAGEDU64. ramparser lit directement deux de
ses dispositions, sans conversion :
- Dumps complets (DumpType 1) : la mémoire physique est stockée sous forme de table de runs ; ramparser replace chaque run à son adresse physique.
- Dumps bitmap (DumpType 5, et 6 pour les dumps noyau à chaud du
Gestionnaire des tâches) : un en-tête de synthèse (
FDMPouSDMP) au décalage0x2000contient un bitmap par page indiquant quelles pages physiques sont présentes ; les pages suivent, contiguës. C'est ce qu'écrivent Windows 8 et suivants pour les dumps complets, noyau et automatiques après un écran bleu.
L'en-tête fournit aussi le DTB du noyau, PsActiveProcessHead,
PsLoadedModuleList et le code de bugcheck. Attention : les dumps
mémoire noyau et automatiques ne contiennent que les pages du noyau,
les données en mode utilisateur y manquent donc.
Non supportés : les crash dumps 32 bits (en-tête PAGEDUMP), les
petits dumps mémoire (minidumps) et les DumpTypes 0x8 à 0xA plus
récents qu'écrivent les versions récentes de WinDbg pour .dump /k,
/ka et /f.
Ils sont alors lus comme du brut, ce qui donne des résultats faux :
convertissez-les d'abord.
Pour la pure compatibilité analyseur, préférez le brut. C'est le format au plus petit dénominateur commun et il survit le plus longtemps en stockage d'archives sans nécessiter de fixer les versions d'outil.
Formats nécessitant une conversion
- Crash dumps Windows 32 bits (
.dmpavec en-têtePAGEDUMP). Aplatissez en brut avecimagecopyde Volatility 2. (Les crash dumps 64 bits se chargent directement, voir plus haut.) - Fichiers d'hibernation (
hiberfil.sys). Compressés, avec un en-tête structuré qui mappe les pages décompressées aux adresses physiques.Hibr2Binde Comae décompresse en brut. - Snapshots VMware avec descripteurs séparés. Un
.vmsn/.vmssréférence le.vmem. Pointez votre outil vers le.vmem; le descripteur n'est que métadonnées. - Hyper-V
.bin+.vsv. Même séparation :.binest la RAM invité. Certaines configurations Hyper-V compressent ;vol3gère les dispositions modernes directement. - AFF4 (
.aff4). Format conteneur utilisé par winpmem. Peu d'analyseurs le lisent nativement. Utilisezaff4imagerou l'export propre de winpmem pour convertir en brut.
Comment ramparser détecte l'OS
Quelle que soit l'extension, ramparser identifie depuis le contenu :
- Windows : l'enregistrement CodeView/RSDS du noyau (aussi la clé
de symbole utilisée pour récupérer le PDB
ntoskrnlcorrespondant). - Linux : la bannière
Linux versionémise par le noyau au démarrage.
Si la détection dit unknown, l'image est probablement un conteneur compressé, un dump chiffré ou un format non supporté (crash dump 32 bits, fichier d'hibernation). Convertissez en brut et réessayez.
Le pagefile n'est pas une image mémoire
Faux départ courant : tenter de charger pagefile.sys dans un
analyseur mémoire. Le pagefile est du swap sur disque, pas une
disposition physique plate. Il est utile (voir le
parseur pagefile pour ce qu'on
peut en extraire) mais un analyseur mémoire le rejettera. Idem pour
swapfile.sys.
Règle générale
Si vous pouvez le dd et que le décalage physique égale le décalage
fichier, ramparser peut l'analyser, tout comme LiME, AVML (compressé
ou non) et les crash dumps Windows 64 bits. Tout autre format
structuré (crash dump 32 bits, hibernation, AFF4) doit être converti
en brut d'abord.