← Tous les articles

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 .vmem du 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 --compress stocke chaque bloc de 16 Mio au plus sous forme de flux Snappy derrière un en-tête AVML. ramparser décompresse les blocs à la volée pendant la lecture, sans passe avml 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 (FDMP ou SDMP) au décalage 0x2000 contient 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 (.dmp avec en-tête PAGEDUMP). Aplatissez en brut avec imagecopy de 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. Hibr2Bin de Comae décompresse en brut.
  • Snapshots VMware avec descripteurs séparés. Un .vmsn / .vmss ré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 : .bin est la RAM invité. Certaines configurations Hyper-V compressent ; vol3 gère les dispositions modernes directement.
  • AFF4 (.aff4). Format conteneur utilisé par winpmem. Peu d'analyseurs le lisent nativement. Utilisez aff4imager ou 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 ntoskrnl correspondant).
  • 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.

Pour aller plus loin