Como acessar / dev / mem no OSX?

Respostas:

12

De acordo com Accessing Kernel Memory na versão x86 do Mac OS X , /dev/meme /dev/kmemforam removidos quando a Apple lançou o OS X para processadores Intel.

O artigo (excelente) também explica como reativar os dispositivos de memória , usando o kmem=1argumento de inicialização do kernel.

Observe que, conforme comentado abaixo por neal , no macOS 10.15 Catalina (e provavelmente desde o macOS 10.12 Sierra), as configurações da NVRAM só podem ser alteradas quando o Mac é inicializado no modo de recuperação . Para entrar no modo de recuperação , ligue o Mac e pressione -R até o logotipo aparecer; inicie o Terminal no menu Utilitários na barra de menus, execute:

sudo nvram boot-args="kmem=1"

e reinicie. Você deve ver estes dois 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

(Nas versões anteriores do macOS, como o OS X Mavericks 10.9.2, é possível reativar os dispositivos de memória no sistema operacional; basta iniciar o Terminal, digite o comando acima e reinicie.)

Se o seu Mac não inicializar ou você tiver problemas , redefina a NVRAM pressionando optionPRe mantendo pressionadas as teclas até ouvir o som de inicialização pela segunda vez, conforme explicado em "Redefinindo a NVRAM / PRAM" no KB HT1379 Sobre a NVRAM e a PRAM .

Se você deseja redefinir o argumento, digite sudo nvram -d boot-argse verifique nvram -p | grep boot-argsse não há resultados.

jaume
fonte
1
Eu tentei esse método no macOS Sierra, mas não fez os dispositivos aparecerem /dev.. talvez você saiba se a Apple fechou essa opção e se existe outra alternativa para acessar essa memória na 10.12?
Zohar81
1
Em algum momento, as configurações do nvram só poderiam ser alteradas quando o Mac era inicializado no modo de recuperação. Portanto, se você ligar o Mac e imediatamente pressionar Cmd-R até o logotipo aparecer, vá para um Terminal na interface do usuário da instalação do Recovery e execute o comando, ele deverá funcionar. Isso funcionou para mim ontem no OS X Catalina.
N12
4

Acho que consegui trabalhar no macOS Sierra! Baixei o projeto da comex: Kmem Project Compilei o kext, corrigi as permissões e depois o carreguei! Usando o terminal, entrei /deve lsmostrei os dois meme kmem...

Edit: Se você baixar o projeto, será necessário alterar o compilador no Xcode para usar as mais recentes (por exemplo ... Não sei se outras versões funcionam ...) Para acesso rápido aos resultados que já fiz um garfo do projeto da comex que é compilado no macOS Sierra! Kmem para Sierra Fork

Novamente, este é um trabalho da comex, não meu, apenas alterei a configuração do compilador e a enviei! :)

Nickolas Pylarinos
fonte