Wie greife ich in OSX auf /dev/mem zu?

Wie kann ich in OSX auf /dev/mem (oder /dev/kmem, /dev/pmap) entsprechende Geräte zugreifen?

Soweit ich weiß, wurde es irgendwann entfernt.

Kann ich diesen Knoten irgendwie oder auf andere Weise manuell erstellen, um den physischen Speicher zu sichern?

Sehen:

Antworten (2)

Laut Accessing Kernel Memory on the x86 Version of Mac OS X wurden /dev/memsie /dev/kmementfernt, als Apple OS X für Intel-Prozessoren veröffentlichte.

Der (ausgezeichnete) Artikel erklärt auch, wie man die Speichergeräte wieder aktiviert , nämlich mit dem kmem=1Kernel-Boot-Argument.

Beachten Sie, dass, wie unten von neal kommentiert , in macOS 10.15 Catalina (und wahrscheinlich seit macOS 10.12 Sierra) die NVRAM-Einstellungen nur geändert werden können, wenn Ihr Mac im Wiederherstellungsmodus gestartet wird . Um in den Wiederherstellungsmodus zu wechseln , schalten Sie Ihren Mac ein und halten Sie sofort -R gedrückt, bis das Logo erscheint, starten Sie Terminal aus dem Menü Dienstprogramme in der Menüleiste, führen Sie Folgendes aus:

sudo nvram boot-args="kmem=1"

und neu starten. Sie sollten diese beiden Geräte sehen:

$ 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

(In früheren Versionen von macOS wie OS X Mavericks 10.9.2 können Sie die Speichergeräte innerhalb des Betriebssystems wieder aktivieren, also starten Sie einfach Terminal, geben Sie den obigen Befehl ein und starten Sie neu.)

Wenn Ihr Mac nicht startet oder Sie Probleme haben , setzen Sie den NVRAM zurück, indem Sie die Tasten gedrückt optionPRhalten, bis Sie den Startton zum zweiten Mal hören, wie in „Resetting NVRAM / PRAM“ in KB HT1379 About NVRAM and PRAM erklärt .

Wenn Sie das Argument zurücksetzen möchten, geben Sie es ein sudo nvram -d boot-argsund prüfen Sie, ob nvram -p | grep boot-argskeine Ergebnisse gedruckt werden.

Ich habe diese Methode in macOS Sierra ausprobiert, aber die Geräte wurden nicht unter /dev... angezeigt. Weißt du vielleicht, ob Apple diese Option geschlossen hat und ob es in 10.12 eine andere Alternative für den Zugriff auf diesen Speicher gibt?
Irgendwann konnten die nvram-Einstellungen nur geändert werden, wenn Ihr Mac im Wiederherstellungsmodus gestartet wurde. Wenn Sie also Ihren Mac einschalten und sofort Cmd-R gedrückt halten, bis das Logo erscheint, dann von der Benutzeroberfläche der Wiederherstellungsinstallation zu einem Terminal wechseln und den Befehl ausführen, sollte es funktionieren. Das hat gestern bei mir unter OS X Catalina funktioniert.

Ich glaube, ich habe es unter macOS Sierra zum Laufen gebracht! Ich habe das Projekt von comex heruntergeladen: Kmem Project Ich habe den kext kompiliert, die Berechtigungen korrigiert und ihn dann geladen! Mit dem Terminal ging ich hinein /devund lszeigte sowohl memals auch kmem...

Bearbeiten: Wenn Sie das Projekt herunterladen, müssen Sie nur den Compiler in Xcode ändern, um die neueste Version zu verwenden (zum Beispiel ... ich weiß nicht, ob andere Versionen funktionieren ...) Für einen schnellen Zugriff auf Ergebnisse, die ich bereits erstellt habe ein Fork des Comex-Projekts, das auf macOS Sierra kompiliert wird! Kmem für Sierra Fork

Auch dies ist die Arbeit von comex, nicht meine, ich habe nur die Compiler-Einstellung geändert und hochgeladen! :)