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
1052672 bytes (1.1 MB) copied
. Nie 3,3 MB (ani 2,3 MB / s, co było prędkością).Odpowiedzi:
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=0
w cmdline jądra.* :
STRICT_DEVMEM=y
(patrz np. / boot / config-KERNELVERSION)źródło
strict-devmem=0
polecenie cmdline jądra.