Как я могу сбросить всю физическую память в файл?

10

Я использую Ubuntu 11.10 и хочу просто знать, могу ли я сбросить всю физическую память и обменять, поскольку из-за некоторых ограничений ядра я не могу dd /dev/mem , даже как суперпользователь. Есть ли способ обхода или вариант, позволяющий dd 'ing /dev/mem или выделенный инструмент, сделанный для этого правильно?

    
задан hexafraction 07.06.2012 в 22:47
источник

2 ответа

6

Использовать fmem

Вы использовали только dd /dev/mem в день, но больше не по соображениям безопасности (начиная с ядра 2.6, IIRC).

Альтернатива заключается в том, чтобы либо самостоятельно построить ядро ​​с возможностью позволить root сделать это (будет редактировать с именем позже, на телефоне сейчас). Или лучше, используйте fmem , модуль ядра, который создает устройство /dev/fmem , в значительной степени предназначенное для простого демпинга.

fmem отлично работает для меня 12.04. Просто убедитесь, что вы используете файл run.sh , включенный в tarball, для загрузки модуля; не использовать insmod :

$ ./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
    
ответ дан izx 08.06.2012 в 00:32
источник
2

Вероятно, вы не можете записать свою память в современных ядрах. они уменьшают прямой доступ, который в основном используется для изворотливых вещей . T он forensics wiki связывает несколько инструментов , которые могут представлять интерес, но в последние несколько лет ничего не обновлялось , LiME кажется обновленным, хотя я еще не тестировал его.     

ответ дан Journeyman Geek 08.06.2012 в 00:33