J'utilise Ubuntu 12.04
J'ai lu le tutoriel suivant sur la façon d'accéder au contenu de la RAM sous Linux ....
http://www.rootninja.com/using-dd-to-search-for-strings-in-memory-or-devices/
Code:
dd if=/dev/mem | hexdump -C | grep “string to search for”
Donc, je lance le code ...
Code:
sudo dd if=/dev/mem | hexdump -C > NAMEOFOUTPUTFILEHERE.txt
Et ... il commence à pomper le code HEX, jusqu'à quelques secondes plus tard, où il dit:
dd: reading `/dev/mem': Operation not permitted
2056+0 records in
2056+0 records out
1052672 bytes (1.1 MB) copied, 0.44834 s, 2.3 MB/s
Donc, fondamentalement .. Je suis capable d'obtenir environ 3,3 Mo de contenu de vidage de RAM - jusqu'à ce que le programme s'arrête, en disant "Opération non autorisée"
Et donc je me demande pourquoi je ne suis pas en mesure de vider l'intégralité du contenu de la RAM? Est-ce une limitation délibérée dans Ubuntu, pour arrêter les pirates malveillants? Ou s'agit-il d'autre chose? Est-ce que quelqu'un sait? Merci
1052672 bytes (1.1 MB) copied
. Pas 3,3 Mo (ni 2,3 Mo / sec qui était une vitesse).Réponses:
Le noyau linux de votre installation Ubuntu est livré avec un paramètre * qui limite l'extraction de RAM à 1 Mo.
Si vous ne souhaitez pas que vous puissiez recompiler le noyau sans lui (caverne évidente: vous réduisez la sécurité!) Ou vous pouvez télécharger et insmoder le module fmem du noyau médico-légal pour contourner ce problème. Cela fournit un périphérique / dev / fmem sans aucune sécurité.
Comme mentionné par Opello: vous pouvez également utiliser
strict-devmem=0
dans le noyau cmdline.* :
STRICT_DEVMEM=y
(voir par exemple / boot / config-KERNELVERSION)la source
strict-devmem=0
dans la cmdline du noyau.