¿Cómo acceder a /dev/mem en OSX?

¿Cómo puedo acceder a /dev/mem (o /dev/kmem, /dev/pmap) dispositivo equivalente en OSX?

Hasta donde yo sé, se eliminó en algún momento.

¿Puedo crear este nodo manualmente de alguna manera o cualquier otra forma de volcar la memoria física?

Ver:

Respuestas (2)

Según Accessing Kernel Memory en la versión x86 de Mac OS X , /dev/memy /dev/kmemse eliminaron cuando Apple lanzó OS X para procesadores Intel.

El (excelente) artículo también explica cómo volver a habilitar los dispositivos de memoria , es decir, utilizando el kmem=1argumento de arranque del kernel.

Tenga en cuenta que, como comenta Neal a continuación , en macOS 10.15 Catalina (y probablemente desde macOS 10.12 Sierra), la configuración de NVRAM solo se puede cambiar cuando su Mac se inicia en modo de recuperación . Para ingresar al modo de recuperación , encienda su Mac e inmediatamente mantenga presionada la tecla -R hasta que aparezca el logotipo, inicie Terminal desde el menú Utilidades en la barra de menú, ejecute:

sudo nvram boot-args="kmem=1"

y reiniciar Deberías ver estos dos dispositivos:

$ 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

(En versiones anteriores de macOS como OS X Mavericks 10.9.2, puede volver a habilitar los dispositivos de memoria dentro del sistema operativo, así que simplemente inicie Terminal, escriba el comando anterior y reinicie).

Si su Mac no arranca o tiene algún problema , restablezca la NVRAM presionando optionPRy manteniendo presionadas las teclas hasta que escuche el sonido de inicio por segunda vez, como se explica en "Restablecimiento de NVRAM / PRAM" en KB HT1379 Acerca de NVRAM y PRAM .

Si desea restablecer el argumento, escriba sudo nvram -d boot-argsy verifique que nvram -p | grep boot-argsno muestre ningún resultado.

Probé este método en macOS Sierra, pero no hizo que los dispositivos aparecieran en /dev... ¿Quizás sabes si Apple cerró esta opción y si hay otra alternativa para acceder a esta memoria en 10.12?
En algún momento, la configuración de nvram solo se podía cambiar cuando su Mac se iniciaba en modo de recuperación. Entonces, si enciende su Mac e inmediatamente mantiene presionado Cmd-R hasta que aparezca el logotipo, luego vaya a una Terminal desde la IU de instalación de Recuperación y ejecute el comando, debería funcionar. Esto me funcionó en OS X Catalina ayer.

¡Creo que lo hice funcionar en macOS Sierra! Descargué el proyecto de comex: Proyecto Kmem Compilé el kext, arreglé los permisos y luego lo cargué. Usando la terminal entré /devy lsmostré ambos memy kmem...

Editar: si descarga el proyecto, solo tendrá que cambiar el compilador en Xcode para usar el último (por ejemplo... aunque no sé si funcionan otras versiones...) Para un acceso rápido a los resultados que ya he hecho ¡una bifurcación del proyecto de comex que compila en macOS Sierra! Kmem para Sierra Tenedor

Nuevamente, este es trabajo de comex, no mío, ¡solo cambié la configuración del compilador y lo cargué! :)