Comment vider la mémoire physique sous Linux?


22

Comment créer un vidage de la mémoire physique (RAM) sous Linux?

Quel logiciel, le cas échéant, est disponible à cet effet?

J'ai lu qu'il ne fallait pas écrire sur un disque local mais plutôt envoyer les données sur le réseau. Quelqu'un connaît les particularités ici? Ethernet fonctionnerait-il à cette fin, ou existe-t-il des commandes qui minimisent la quantité de cache avant d'envoyer sur le disque?

WinHex sur Windows a une telle fonctionnalité:

entrez la description de l'image ici

Je cherche quelque chose de similaire sur Linux.

Réponses:


22

Voici une page eHow sur la façon de vider la mémoire Linux

Linux fournit deux périphériques virtuels à cet effet, ' /dev/mem' et ' /dev/kmem', bien que de nombreuses distributions les désactivent par défaut pour des raisons de sécurité. ' /dev/mem' est lié à la mémoire du système physique, tandis que ' /dev/kmem' est mappé à tout l'espace de mémoire virtuelle, y compris tout échange. Les deux appareils fonctionnent comme des fichiers normaux et peuvent être utilisés avec dd ou tout autre outil de manipulation de fichiers.

Cela mène à la page ForensicsWiki sur les outils d'imagerie mémoire avec la section Linux / Unix ,

  1. dd Sur les systèmes Unix, le programme dd peut être utilisé pour capturer le contenu de la mémoire physique à l'aide d'un fichier de périphérique (par exemple / dev / mem et / dev / kmem). Dans les noyaux Linux récents, / dev / kmem n'est plus disponible. Dans les noyaux encore plus récents, / dev / mem a des restrictions supplémentaires. Et dans la plus récente, / dev / mem n'est plus disponible par défaut non plus. Tout au long de la série de noyaux 2.6, la tendance a été de réduire l'accès direct à la mémoire via des fichiers de pseudo-périphériques. Voir, par exemple, le message accompagnant ce patch: http://lwn.net/Articles/267427/ . Sur les systèmes Red Hat (et les distributions dérivées telles que CentOS), le pilote de crash peut être chargé pour créer un pseudo-périphérique pour l'accès à la mémoire ("crash de modprobe").
  2. Second Look Ce produit commercial d'analyse de mémoire a la capacité d'acquérir de la mémoire à partir de systèmes Linux, localement ou à partir d'une cible distante via DMA ou via le réseau. Il est livré avec des modules précompilés de pilote d'accès à la mémoire physique (PMAD) pour des centaines de noyaux des distributions Linux les plus couramment utilisées.
  3. Idetect (Linux)
  4. fmem (Linux)
    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.
  5. Goldfish
    Goldfish est un outil médico-légal en direct de Mac OS X à utiliser uniquement par les forces de l'ordre. Son objectif principal est de fournir une interface facile à utiliser pour vider la RAM système d'une machine cible via une connexion Firewire. Il extrait ensuite automatiquement le mot de passe de connexion utilisateur actuel et tous les fragments de conversation AOL Instant Messenger ouverts qui peuvent être disponibles. L'application de la loi peut contacter goldfish.ae pour obtenir des informations de téléchargement.

Voir aussi: Analyse de mémoire Linux .
Il existe également GDB couramment disponible sur la plupart des Linux.
Et, il est toujours conseillé d'éviter d'écrire sur une mémoire inconnue - cela peut entraîner une corruption du système.


1
Quelqu'un a-t-il essayé cela sur un système Ubuntu récent?

1
pas / dev / mem ou / dev / kmem sur mon système debian.
Rob

Je viens de le faire sur ma machine virtuelle CentOS 7.x.
slm

4

La volatilité semble bien fonctionner et est compatible avec Windows et Linux.

Depuis leur site Web:

La volatilité prend en charge les vidages de mémoire de toutes les principales versions et service packs Windows 32 et 64 bits, y compris XP, 2003 Server, Vista, Server 2008, Server 2008 R2 et Seven. Que votre vidage de mémoire soit au format brut, un vidage sur incident Microsoft, un fichier d'hibernation ou un instantané de machine virtuelle, Volatility est capable de fonctionner avec. Nous prenons également en charge les vidages de mémoire Linux au format brut ou LiME et incluons plus de 35 plugins pour analyser les noyaux Linux 32 et 64 bits de 2.6.11 à 3.5.x et des distributions telles que Debian, Ubuntu, OpenSuSE, Fedora, CentOS et Mandragore. Nous prenons en charge 38 versions de vidages de mémoire Mac OSX de 10.5 à 10.8.3 Mountain Lion, à la fois 32 et 64 bits. Les téléphones Android avec processeurs ARM sont également pris en charge.



0

Comme confirmation, j'ai pu vider la mémoire de ma machine virtuelle CentOS 7.x en utilisant cette méthode:

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |U.@.b...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

Étant donné que 55aah se produisent dans la plage c0000h-effffh, il est probable que l'en-tête d'extension PNP:

Référence: spécification de démarrage du BIOS

3.3 Dispositifs avec en-têtes d'extension PnP

Tous les périphériques IPL avec ROM en option doivent contenir un en-tête de ROM en option valide qui réside entre les adresses de mémoire système C0000h et EFFFFh sur une limite de 2k et commence par 55AAh. Le démarrage d'un périphérique ne peut être contrôlé que s'il possède un en-tête d'extension PnP. L'en-tête d'extension, dont l'adresse réside dans l'en-tête ROM de l'option standard à décalage + 1 Ah, contient des informations importantes utilisées pour configurer le périphérique. Il contient également des pointeurs pour coder dans la ROM optionnelle du périphérique (BCV ou BEV) que le BIOS appellera pour démarrer à partir du périphérique. Voir l'annexe A pour la structure de l'en-tête d'extension PnP. Il existe deux façons de démarrer un périphérique IPL avec un en-tête d'extension PnP. Il doit contenir un BCV ou un BEV.

Les références

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.