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


Respuestas:


12

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 artículo (excelente) también explica cómo volver a habilitar los dispositivos de memoria , es decir, usar 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 presionado -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 imprima ningún resultado.


1
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?
Zohar81

1
En algún momento, la configuración de nvram solo se puede cambiar cuando su Mac se inició en modo de recuperación. Entonces, si enciende su Mac e inmediatamente mantiene presionado Cmd-R hasta que aparezca el logotipo, luego caiga a un Terminal desde la IU de instalación de Recuperación y ejecute el comando, debería funcionar. Esto me funcionó ayer en OS X Catalina.
neal

4

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

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

Nuevamente, este es el trabajo de Comex, no el mío, ¡acabo de cambiar la configuración del compilador y lo cargué! :)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.