Próba dostępu do RAM / dev / mem… mówi „Operacja niedozwolona”

9

Używam Ubuntu 12.04

Przeczytałem następujący samouczek, jak uzyskać dostęp do zawartości pamięci RAM w systemie Linux ....

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

Kod:

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

Więc uruchamiam kod ...

Kod:

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

I ... zaczyna wypompowywać kod HEX, aż kilka sekund później mówi:

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

Więc w zasadzie .. Jestem w stanie uzyskać około 3,3 MB zawartości zrzutu pamięci RAM - dopóki program się nie zatrzyma, mówiąc: „Operacja niedozwolona”

Zastanawiam się więc, dlaczego nie mogę zrzucić całej zawartości pamięci RAM? Czy jest to celowe ograniczenie w Ubuntu, aby powstrzymać złośliwych hakerów? A może to coś innego? Czy ktoś wie? Dzięki


źródło
3
OK ... zapomnij ... okazuje się, że Ubuntu ma limit 1 MB na ekstrakcję pamięci RAM, jak zdefiniowano w jądrze .. i oczywiście, to jest dobre bezpieczeństwo, ponieważ wtedy haker nie może wyodrębnić haseł z pamięci RAM itp ... I tak ... tak ... ten wątek jest teraz ROZWIĄZANY Oto pełna informacja dla wszystkich zainteresowanych ....
1
jeśli twoje jądro zostało skompilowane przy pomocy STRICT_DEVMEM = y (patrz np. / boot / config-KERNELVERSION), to tylko pierwszy 1 MB jest odczytywany z / dev / mem. To nie tyle problem z wersją jądra, co wynik kompilacji jądra własnej maszyny; większość jąder dystrybucyjnych będzie mieć to ograniczenie z dobrego powodu. Możesz pobrać i wdrożyć moduł jądra kryminalistyki fmem, aby obejść ten problem; na własne ryzyko! zrób to jak najszybciej potem. Moduł fmem zapewnia urządzenie / dev / fmem bez żadnych ograniczeń bezpieczeństwa.
1
„Jestem w stanie uzyskać około 3,3 MB zawartości zrzutu pamięci RAM-”. Uhm, jesteś? Widzę tylko 1052672 bytes (1.1 MB) copied. Nie 3,3 MB (ani 2,3 MB / s, co było prędkością).
Hennes,

Odpowiedzi:

4

Jądro Linuksa na twoim systemie instalacyjnym Ubuntu ma ustawienie *, które ogranicza ekstrakcję pamięci RAM do 1 MB.

Jeśli nie życzysz sobie, abyś mógł ponownie skompilować jądro bez niego (oczywiste zastrzeżenie: obniżasz bezpieczeństwo!) Lub możesz pobrać i wdrożyć moduł fmem jądra sądowego, aby obejść ten problem. To zapewnia urządzenie / dev / fmem bez żadnych zabezpieczeń.

Jak wspomniano Opello: możesz także użyć strict-devmem=0w cmdline jądra.


* : STRICT_DEVMEM=y(patrz np. / boot / config-KERNELVERSION)

Hennes
źródło
3
Możesz także przekazać strict-devmem=0polecenie cmdline jądra.
opello
Tylko na Fedorze i powiązanych dystrybucjach, jeśli * nawet * tego dnia
mirh