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

9

Я использую 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, чтобы остановить злоумышленников? Или что-то еще? Кто-нибудь знает? Спасибо


источник
3
Хорошо ... забудь об этом ... оказывается, Ubuntu имеет ограничение в 1 МБ на извлечение ОЗУ, как определено в ядре ... и, очевидно, это хорошая безопасность, потому что тогда хакер не сможет извлечь ваши пароли из ОЗУ и т. Д ... И так ... да .... эта тема теперь решена Вот полная информация, для всех, кто заинтересован ....
1
если ваше ядро ​​было скомпилировано с STRICT_DEVMEM = y (см., например, / boot / config-KERNELVERSION), то из / dev / mem читаются только первые 1 МБ. Это не столько проблема версии ядра, как результат компиляции ядра вашей машины; большинство ядер дистрибутивов будут иметь это ограничение по уважительной причине. Чтобы обойти это, вы можете загрузить и вставить модуль судебного модуля ядра fmem; на свой страх и риск! rmmod это как можно скорее после этого. Модуль fmem предоставляет устройство / dev / fmem без каких-либо ограничений безопасности.
1
msgstr "могу получить около 3.3 МБ содержимого дампа ОЗУ". Хм, а вы? Я вижу это 1052672 bytes (1.1 MB) copied. Не 3,3 МБ (ни 2,3 МБ / с, что было скоростью).
Хеннес

Ответы:

4

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

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

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


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

Hennes
источник
3
Вы также можете передать strict-devmem=0в ядро ​​cmdline.
opello
Только на Fedora и связанных дистрибутивах, если * даже * в этот день
мирное время