Jak mogę uzyskać dostęp do / dev / mem (lub / dev / kmem, / dev / pmap) równoważnego urządzenia w OSX?
O ile wiem, w pewnym momencie został usunięty.
Czy mogę ręcznie utworzyć ten węzeł lub w inny sposób zrzucić pamięć fizyczną?
Widzieć:
Jak mogę uzyskać dostęp do / dev / mem (lub / dev / kmem, / dev / pmap) równoważnego urządzenia w OSX?
O ile wiem, w pewnym momencie został usunięty.
Czy mogę ręcznie utworzyć ten węzeł lub w inny sposób zrzucić pamięć fizyczną?
Widzieć:
Odpowiedzi:
Według Uzyskiwanie dostępu Kernel pamięci na x86 wersja systemu Mac OS X , /dev/mem
a /dev/kmem
zostały usunięte, gdy Apple wydało OS X dla procesorów Intel.
(Doskonały) artykuł wyjaśnia również, jak ponownie włączyć urządzenia pamięci , a mianowicie za pomocą kmem=1
argumentu rozruchowego jądra.
Zauważ, że, jak skomentował poniżej neal , w macOS 10.15 Catalina (i prawdopodobnie od macOS 10.12 Sierra) ustawienia NVRAM można zmienić tylko wtedy, gdy Mac jest uruchamiany w trybie odzyskiwania . Aby przejść do trybu odzyskiwania, włącz komputer Mac i natychmiast przytrzymaj ⌘klawisz -R, aż pojawi się logo, uruchom Terminal z menu Narzędzia na pasku menu, uruchom:
sudo nvram boot-args="kmem=1"
i uruchom ponownie. Powinieneś zobaczyć te dwa urządzenia:
$ ls -l /dev/*mem
crw-r----- 1 root kmem 3, 1 2014-02-28 22:09 /dev/kmem
crw-r----- 1 root kmem 3, 0 2014-02-28 22:09 /dev/mem
(W poprzednich wersjach systemu macOS, takich jak OS X Mavericks 10.9.2, możesz ponownie włączyć urządzenia pamięci w systemie operacyjnym, więc po prostu uruchom Terminal, wpisz powyższe polecenie i uruchom ponownie.)
Jeśli komputer Mac nie uruchamia się lub występują problemy , zresetuj pamięć NVRAM, naciskając ⌘optionPRi przytrzymując klawisze, aż usłyszysz dźwięk uruchamiania po raz drugi, jak wyjaśniono w „Resetowanie pamięci NVRAM / PRAM” w KB HT1379 Informacje o pamięci NVRAM i PRAM .
Jeśli chcesz zresetować argument, wpisz sudo nvram -d boot-args
i sprawdź, nvram -p | grep boot-args
czy nie drukuje żadnych wyników.
Myślę, że mam go do pracy na macOS Sierra! Ściągnąłem projekt comex :
Projekt Kmem
Skompilowałem kext, poprawiłem uprawnienia i załadowałem go! Używając terminala wszedłem /dev
i ls
pokazałem oba mem
i kmem
...
Edycja: Jeśli pobierzesz projekt, musisz tylko zmienić kompilator w Xcode, aby użyć najnowszego (na przykład ... Nie wiem, czy działają inne wersje ...) Aby uzyskać szybki dostęp do wyników, które już stworzyłem widelec projektu comex, który kompiluje się na macOS Sierra! Kmem dla Sierra Fork
Ponownie, to jest praca comex, nie moja, właśnie zmieniłem ustawienia kompilatora i przesłałem je! :)
/dev
to pojawienia się urządzeń pod ... może wiesz, czy Apple zamknął tę opcję i czy istnieje inna alternatywa dostępu do tej pamięci w 10.12?