Du Forensic's Wiki: Tools: Memory Imaging
extrait
Linux
Sur les anciens systèmes Linux, le programme dd peut être utilisé pour lire le contenu de la mémoire physique à partir du fichier de périphérique / dev / mem. Sur les systèmes Linux récents, cependant, / dev / mem fournit uniquement l'accès à une plage d'adresses restreinte, plutôt qu'à la mémoire physique complète d'un système. Sur d'autres systèmes, il peut ne pas être disponible du tout. Tout au long de la série 2.6 du noyau Linux, la tendance a été de réduire l'accès direct à la mémoire via des fichiers pseudo-périphériques. Voir, par exemple, le message accompagnant ce patch: http://lwn.net/Articles/267427/ .
Sur les systèmes Red Hat (et ceux qui exécutent des distributions connexes telles que Fedora ou CentOS), le pilote de crash peut être chargé pour créer un pseudo-périphérique / dev / crash pour l'accès à la mémoire physique brute (via la commande "crash de modprobe"). Ce module peut également être compilé pour d'autres distributions Linux avec un effort mineur (voir, par exemple, http://gleeda.blogspot.com/2009/08/devcrash-driver.html ). Lorsque le pilote de plantage est modifié, compilé et chargé sur d'autres systèmes, le périphérique d'accès à la mémoire résultant n'est pas sûr à l'image dans son intégralité. Des précautions doivent être prises pour éviter les adresses qui ne sont pas sauvegardées en RAM. Sous Linux, / proc / iomem expose les plages d'adresses correctes à l'image, marquées avec "RAM système".
Ce produit d'analyse de la mémoire commerciale est livré avec une version modifiée du pilote de crash et un script pour vider la mémoire en toute sécurité en utilisant le pilote d'origine ou modifié sur n'importe quel système Linux donné.
fmem est un module du noyau qui crée le périphérique / dev / fmem, similaire à / dev / mem mais sans limitations. Ce périphérique (RAM physique) peut être copié à l'aide de dd ou d'un autre outil. Fonctionne sur les noyaux Linux 2.6. Sous GNU GPL.
Linux Memory Extractor (LiME) est un module de noyau chargeable (LKM), qui permet l'acquisition de mémoire volatile à partir de périphériques Linux et Linux, tels que ceux alimentés par Android. L'outil prend en charge le vidage de la mémoire dans le système de fichiers de l'appareil ou sur le réseau.
J'ai trouvé cet exemple d' fmem
utilisation, qui semble être le moyen le plus simple de vider la mémoire à des fins d'analyse, que vous ne pouvez plus utiliser /dev/mem
après les noyaux 2.6.x, si je comprends bien.
Exemple de fmem
$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size= 2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!
$ ls /dev/f*
/dev/fb0 /dev/fd0 /dev/fmem /dev/full /dev/fuse
$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s
* Source: Comment puis-je vider toute la mémoire physique dans un fichier?
Exemple LiME
Pour analyser la mémoire volatile, il y a aussi cette page, intitulée: Analyse de la mémoire Linux . Il y a un exemple détaillé dans ce didacticiel vidéo qui montre l'utilisation de LiME et de la volatilité pour collecter un vidage de mémoire, puis l'analyser, en extrayant l'historique Bash de l'utilisateur du vidage de mémoire.
Quoi d'autre?
Il y a aussi cette Q&R U&L intitulée: Comment puis-je vider la mémoire système complète? qui contient des exemples et des informations supplémentaires.