macOS Memory Dumping
Memory Artifacts
Swap Files
Pliki wymiany, takie jak /private/var/vm/swapfile0
, służą jako bufory, gdy pamięć fizyczna jest pełna. Gdy nie ma już miejsca w pamięci fizycznej, jej dane są przenoszone do pliku wymiany, a następnie przywracane do pamięci fizycznej w razie potrzeby. Może być obecnych wiele plików wymiany, o nazwach takich jak swapfile0, swapfile1 itd.
Hibernate Image
Plik znajdujący się w /private/var/vm/sleepimage
jest kluczowy podczas trybu hibernacji. Dane z pamięci są przechowywane w tym pliku, gdy OS X hibernuje. Po obudzeniu komputera system odzyskuje dane pamięci z tego pliku, co pozwala użytkownikowi kontynuować tam, gdzie przerwał.
Warto zauważyć, że w nowoczesnych systemach MacOS ten plik jest zazwyczaj szyfrowany z powodów bezpieczeństwa, co utrudnia odzyskiwanie.
Aby sprawdzić, czy szyfrowanie jest włączone dla sleepimage, można uruchomić polecenie
sysctl vm.swapusage
. Pokaże to, czy plik jest szyfrowany.
Memory Pressure Logs
Innym ważnym plikiem związanym z pamięcią w systemach MacOS jest dziennik ciśnienia pamięci. Dzienniki te znajdują się w /var/log
i zawierają szczegółowe informacje o użyciu pamięci przez system oraz zdarzeniach ciśnienia. Mogą być szczególnie przydatne do diagnozowania problemów związanych z pamięcią lub zrozumienia, jak system zarządza pamięcią w czasie.
Dumping memory with osxpmem
Aby zrzucić pamięć w maszynie MacOS, można użyć osxpmem.
Uwaga: Poniższe instrukcje będą działać tylko na Macach z architekturą Intel. To narzędzie jest teraz archiwizowane, a ostatnia wersja została wydana w 2017 roku. Pobrany binarny plik za pomocą poniższych instrukcji jest skierowany na chipy Intel, ponieważ Apple Silicon nie istniał w 2017 roku. Może być możliwe skompilowanie binarnego pliku dla architektury arm64, ale będziesz musiał spróbować samodzielnie.
Jeśli napotkasz ten błąd: osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8)
Możesz to naprawić, wykonując:
Inne błędy mogą być naprawione przez zezwolenie na załadowanie kext w "Bezpieczeństwo i prywatność --> Ogólne", po prostu zezwól na to.
Możesz również użyć tego onelinera, aby pobrać aplikację, załadować kext i zrzucić pamięć:
Last updated