
L'outil d'acquisition mémoire multiplateforme.

WinPmem est le pilote d'acquisition de mémoire open source par défaut pour windows depuis longtemps. Il faisait partie du projet Rekall, mais a récemment été séparé dans son propre dépôt.
Ceci est la version Windows. La version Linux, Linpmem, se trouve sur : https://github.com/Velocidex/Linpmem
Ce code a été initialement développé chez Google mais a été publié sous la licence Apache.
WinPmem est un outil d'acquisition de mémoire physique avec les fonctionnalités suivantes :
Open source
Prise en charge de Win7 - Win10, x86 + x64. Le WDK7600 peut être utilisé pour inclure le support de WinXP. Par défaut, les exécutables WinPmem fournis seront compilés avec WDK10, prenant en charge Win7 - Win10, et proposant un code plus moderne.
Trois méthodes de lecture indépendantes, avec deux méthodes pour créer un dump mémoire complet. Une méthode devrait toujours fonctionner même face à des rootkits en mode noyau.
Prise en charge des images de dump mémoire brut.
Une interface de périphérique de lecture est utilisée au lieu d'écrire l'image depuis le noyau comme certains autres imageurs. Cela nous permet d'avoir un imageur complexe en espace utilisateur (par exemple, copie sur le réseau, hachage, etc.), ainsi que d'exécuter des analyses sur le système en direct (par exemple, peut être exécuté directement sur le périphérique).
Les fichiers de ce répertoire (y compris les sources WinPmem et les binaires signés) sont disponibles sous la licence suivante : Apache License, Version 2.0
Il existe deux exécutables WinPmem : winpmem_mini_x86.exe et winpmem_mini_x64.exe. Les deux versions contiennent les deux pilotes (versions 32 et 64 bits).
Le terme 'mini' dans le nom du binaire indique que cet imageur est un imageur simple - il ne peut produire que des images au format RAW. Par le passé, nous avons publié un imageur WinPmem basé sur AFF4, mais celui-ci n'a pas encore été mis à jour vers le nouveau pilote. Faites-nous savoir si vous avez besoin de l'imageur basé sur AFF4.
Le programme Python est actuellement en construction mais fonctionne comme une démonstration de la façon d'utiliser l'imageur depuis Python.
Ce programme est le plus simple à utiliser pour la réponse aux incidents car il ne nécessite aucune autre dépendance que l'exécutable lui-même. Le programme chargera automatiquement le bon pilote (32 bits ou 64 bits) et est autonome.
winpmem_mini_x64.exe physmem.raw
Écrit une image brute dans physmem.raw en utilisant la méthode d'acquisition par défaut.
winpmem_mini_x64.exe
Affiche l'utilisation / le manuel court.
Pour acquérir une image brute en utilisant spécifiquement la méthode MmMapIoSpace :
winpmem.exe -1 myimage.raw
Le pilote sera automatiquement déchargé après l'acquisition de l'image !
En raison de la conception de la fonction MJ READ par Microsoft, la lecture de la mémoire physique échouera dans Winpmem avec STATUS_INVALID_PARAMETER si une adresse physique plus grande que la moitié de la valeur maximale d'un UINT64 est spécifiée. Par exemple, c'est le cas si quelqu'un veut lire dans les parties supérieures de la mémoire physique et dispose d'une mémoire physique gigantesque (plus de 9 223 372 036 854 775 807). Cela semble très peu probable, mais les tailles de RAM actuelles continuent d'augmenter.
Le code source de WinPmem prend en charge l'écriture en mémoire ainsi que la lecture. Cette capacité est un excellent outil d'apprentissage car de nombreuses techniques de dissimulation de rootkits peuvent être émulées en écrivant directement en mémoire.
Cette fonctionnalité doit être utilisée avec une extrême prudence !
REMARQUE : Comme il s'agit d'une capacité plutôt dangereuse, les pilotes binaires signés ont le support d'écriture désactivé. Vous pouvez reconstruire les pilotes pour produire des binaires signés de test si vous souhaitez utiliser cette fonctionnalité. Les binaires non signés (en réalité auto-signés avec un certificat de test) ne peuvent pas être chargés sur un système normal car ils sont auto-signés de test, mais vous pouvez autoriser le chargement des pilotes non signés sur un système de test en exécutant (voir https://docs.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option :
Bcdedit.exe -set TESTSIGNING ON
et redémarrez. Vous verrez un petit texte "Mode test" sur le bureau pour vous rappeler que cette machine est configurée pour les pilotes signés de test.
De plus, le support d'écriture doit également être activé au moment du chargement :
winpmem.exe -w -l
Cela chargera les pilotes et activera le support d'écriture.
Winpmem, ainsi que Linpmem, n'existeraient pas sans le travail de nos prédécesseurs du projet REKALL (désormais retiré) : https://github.com/google/rekall.
Ce projet ne serait pas non plus possible sans le soutien de la communauté DFIR au sens large :
Nos contributeurs open source :