Попытка доступа к RAM /dev/mem... говорит "Операция не разрешена"

Я использую Ubuntu 12.04

Я прочитал следующий учебник о том, как получить доступ к содержимому оперативной памяти в Linux....

http://www.rootninja.com/using-dd-to-search-for-strings-in-memory-or-devices/

Код:

dd if=/dev/mem | hexdump -C | grep “string to search for”

Итак, я запускаю код...

Код:

sudo dd if=/dev/mem | hexdump -C > NAMEOFOUTPUTFILEHERE.txt

И... он начинает выкачивать HEX-код, спустя несколько секунд, где он говорит:

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

Так что в основном... Я могу получить около 3,3 МБ содержимого дампа ОЗУ - до тех пор, пока программа не остановится со словами "Операция не разрешена"

И поэтому мне интересно, почему я не могу сбросить все содержимое оперативной памяти? Это преднамеренное ограничение в Ubuntu, чтобы остановить злоумышленников? Или что-то еще? Кто-нибудь знает? Спасибо

1 ответ

Ядро linux на вашей установке Ubuntu поставляется с настройкой *, которая ограничивает извлечение оперативной памяти до 1 МБ.

Если вы не хотите, чтобы вы могли либо перекомпилировать ядро ​​без него (очевидное предостережение: вы снижаете безопасность!), Либо вы можете скачать и инсталлировать криминалистический модуль ядра fmem, чтобы обойти это. Это обеспечивает устройство /dev/fmem без какой-либо защиты.

Как уже упоминалось Opello: вы также можете использовать strict-devmem=0 в ядре cmdline.


*: STRICT_DEVMEM=y (см., например, /boot/config-KERNELVERSION)

Другие вопросы по тегам