Jak zrzucić pamięć fizyczną w systemie Linux?

22

Jak stworzyć zrzut pamięci fizycznej (RAM) w systemie Linux?

Jakie oprogramowanie jest dostępne do tego celu?

Przeczytałem, że nie należy zapisywać na dysk lokalny, a raczej wysyłać dane przez sieć. Czy ktoś tu zna osobliwości? Czy Ethernet działałby w tym celu, czy też są jakieś polecenia, które minimalizują ilość buforowania przed wysłaniem na dysk?

WinHex na Windows ma taką funkcjonalność:

wprowadź opis zdjęcia tutaj

Szukam czegoś podobnego w systemie Linux.

Anonimowy
źródło

Odpowiedzi:

22

Oto strona eHow na temat usuwania pamięci systemu Linux

Linux udostępnia w tym celu dwa urządzenia wirtualne „ /dev/mem” i „ /dev/kmem”, chociaż wiele dystrybucji domyślnie je wyłącza ze względów bezpieczeństwa. „ /dev/mem” jest powiązany z fizyczną pamięcią systemową, podczas gdy „ /dev/kmem” odwzorowuje na całą przestrzeń pamięci wirtualnej, w tym na dowolną wymianę. Oba urządzenia działają jak zwykłe pliki i mogą być używane z dd lub dowolnym innym narzędziem do manipulacji plikami.

To prowadzi do strony ForensicsWiki na temat narzędzi do tworzenia obrazów pamięci z sekcją Linux / Unix ,

  1. dd W systemach Unix program dd może być używany do przechwytywania zawartości pamięci fizycznej za pomocą pliku urządzenia (np. / dev / mem i / dev / kmem). W najnowszych jądrach Linuksa / dev / kmem nie jest już dostępny. W jeszcze nowszych jądrach / dev / mem ma dodatkowe ograniczenia. W najnowszej wersji / dev / mem nie jest już domyślnie dostępny. W całej serii jądra 2.6 trendem było zmniejszanie bezpośredniego dostępu do pamięci za pomocą plików pseudo-urządzeń. Zobacz na przykład komunikat towarzyszący tej łatce: http://lwn.net/Articles/267427/ . W systemach Red Hat (i pochodnych dystrybucjach, takich jak CentOS), sterownik awarii można załadować, aby utworzyć pseudo-urządzenie do dostępu do pamięci („awaria modprobe”).
  2. Drugie spojrzenie Ten komercyjny produkt do analizy pamięci ma możliwość pozyskiwania pamięci z systemów Linux, lokalnie lub ze zdalnego obiektu docelowego przez DMA lub przez sieć. Zawiera wstępnie skompilowane moduły sterownika dostępu do pamięci fizycznej (PMAD) dla setek jąder z najczęściej używanych dystrybucji Linuksa.
  3. Idetect (Linux)
  4. fmem (Linux)
    fmem to moduł jądra, który tworzy urządzenie / dev / fmem, podobne do / dev / mem, ale bez ograniczeń. To urządzenie (fizyczna pamięć RAM) można skopiować za pomocą dd lub innego narzędzia. Działa na jądrach Linuksa 2.6. Zgodnie z GNU GPL.
  5. Goldfish
    Goldfish to narzędzie kryminalistyczne na żywo dla systemu Mac OS X do użytku wyłącznie przez organy ścigania. Jego głównym celem jest zapewnienie łatwego w użyciu interfejsu do zrzucania pamięci RAM systemu komputera docelowego za pośrednictwem połączenia Firewire. Następnie automatycznie wyodrębnia bieżące hasło logowania użytkownika i wszelkie otwarte fragmenty konwersacji AOL Instant Messenger, które mogą być dostępne. Organy ścigania mogą skontaktować się z goldfish.ae w celu pobrania informacji.

Zobacz też: Analiza pamięci systemu Linux .
Istnieje również GDB powszechnie dostępny na większości Linuksów.
I zawsze zaleca się unikanie zapisywania nieznanej pamięci - może to prowadzić do uszkodzenia systemu.

nik
źródło
1
Czy ktoś próbował tego na najnowszym systemie Ubuntu?
1
no / dev / mem lub / dev / kmem w moim systemie debian.
Rob
Właśnie to zrobiłem na mojej maszynie Wirtualnej CentOS 7.x.
slm
4

Wydaje się, że zmienność działa dobrze i jest kompatybilna z systemami Windows i Linux.

Z ich strony internetowej:

Volatility obsługuje zrzuty pamięci ze wszystkich głównych 32- i 64-bitowych wersji systemu Windows oraz dodatków Service Pack, w tym XP, 2003 Server, Vista, Server 2008, Server 2008 R2 i Seven. Niezależnie od tego, czy zrzut pamięci ma format surowy, zrzut awaryjny Microsoft, plik hibernacji, czy migawkę maszyny wirtualnej, Volatility jest w stanie z nim pracować. Obsługujemy teraz zrzuty pamięci dla systemu Linux w formacie raw lub LiME i obejmują ponad 35 wtyczek do analizy 32- i 64-bitowych jąder Linuksa od wersji 2.6.11 - 3.5.xi dystrybucji takich jak Debian, Ubuntu, OpenSuSE, Fedora, CentOS i Mandragora. Obsługujemy 38 wersji zrzutów pamięci Mac OSX od 10.5 do 10.8.3 Mountain Lion, zarówno 32-, jak i 64-bitowych. Obsługiwane są również telefony z Androidem z procesorami ARM.

Patel95
źródło
0

Jako potwierdzenie mogłem zrzucić pamięć mojej maszyny Wirtualnej CentOS 7.x przy użyciu tej metody:

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |[email protected]...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

Biorąc pod uwagę, że 55aah występuje w zakresie c0000h-effffh, prawdopodobnie nagłówek rozszerzenia PNP:

Odniesienie: specyfikacja rozruchu systemu BIOS

3.3 Urządzenia z nagłówkami rozszerzającymi PnP

Wszystkie urządzenia IPL z opcjonalnymi pamięciami ROM muszą zawierać prawidłowy nagłówek opcji ROM, który znajduje się między adresami pamięci systemowej C0000h i EFFFFh na granicy 2k i zaczyna się od 55AAh. Rozruch urządzenia można kontrolować tylko wtedy, gdy ma on nagłówek rozszerzeń PnP. Nagłówek rozszerzenia, którego adres znajduje się w standardowym nagłówku opcji ROM przy przesunięciu + 1 Ah, zawiera ważne informacje używane do konfiguracji urządzenia. Zawiera także wskaźniki do zakodowania w opcji ROM urządzenia (BCV lub BEV), które BIOS wywoła w celu uruchomienia z urządzenia. Zobacz Dodatek A, aby poznać strukturę nagłówka rozszerzającego PnP. Istnieją dwa sposoby uruchomienia urządzenia IPL z rozszerzeniem PnP. Musi zawierać BCV lub BEV.

Referencje

slm
źródło