Як отримати доступ / dev / mem в OSX?


12

Як я можу отримати доступ до / dev / mem (або / dev / kmem, / dev / pmap) еквівалентного пристрою в OSX?

Наскільки мені відомо, її зняли в якийсь момент.

Чи можу я створити цей вузол вручну якось або будь-яким іншим способом скидання фізичної пам'яті?

Подивитися:

Відповіді:


12

Згідно Доступ до жорсткого диску ядра пам'яті на x86 Версія Mac OS X , /dev/memі /dev/kmemбули видалені , коли компанія Apple випустила OS X для процесорів Intel.

У статті (відмінна) також пояснюється, як відремонтувати пристрої пам'яті , а саме використовувати kmem=1аргумент завантаження ядра.

Зауважте, що, як це прокоментується нижче від neal , у macOS 10.15 Catalina (і, мабуть, з macOS 10.12 Sierra), налаштування NVRAM можна змінити лише тоді, коли ваш Mac завантажений у режим відновлення . Щоб увійти в режим відновлення , увімкніть ваш Mac і негайно утримуйте -R, поки не з’явиться логотип, запустіть Terminal з меню Утиліти на панелі меню, запустіть:

sudo nvram boot-args="kmem=1"

і перезавантажити. Ви повинні побачити ці два пристрої:

$ 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

(У попередніх версіях macOS, таких як OS X Mavericks 10.9.2, ви можете повторно ввімкнути пристрої пам'яті в операційній системі, тому просто запустіть Terminal, введіть команду вище та перезавантажте.)

Якщо ваш Mac не завантажиться або у вас виникли проблеми , скиньте NVRAM, натискаючи optionPRта утримуючи клавіші, поки не почуєте звук запуску вдруге, як пояснено в "Скидання NVRAM / PRAM" в KB HT1379 Про NVRAM та PRAM .

Якщо ви хочете скинути аргумент, введіть sudo nvram -d boot-argsі перевірте, nvram -p | grep boot-argsчи не друкуються результати.


1
Я спробував цей метод у macOS Sierra, але він не змусив пристроїв відображатися під /dev.. можливо, ви знаєте, чи Apple закрила цю опцію, і чи є інша альтернатива доступу до цієї пам’яті в 10.12?
Zohar81

1
У якийсь момент налаштування nvram можна було змінити лише тоді, коли ваш Mac був завантажений у режим відновлення. Отже, якщо ви ввімкнули свій Mac і негайно утримуєте Cmd-R, поки не з’явиться логотип, а потім перейдіть до терміналу з інтерфейсу установки Recovery та виконайте команду, вона повинна спрацювати. Це якраз працювало для мене на OS X Catalina вчора.
Neal

4

Я думаю, що я змусив його працювати на macOS Sierra! Я завантажив проект Comex : Kmem Project Я склав кекс, виправив дозволи та потім завантажив його! Використовуючи термінал, я зайшов /devі lsпоказав і те, memі kmem...

Редагувати: Якщо ви завантажуєте проект, вам просто знадобиться змінити компілятор у Xcode, щоб використовувати останню (наприклад, я не знаю, чи працюють інші версії ...) Для швидкого доступу до результатів я вже зробив вилка проекту Comex, який збирається на macOS Sierra! Кем для вилки Сьєрра

Знову ж таки, це робота Comex, а не моя, я просто змінив налаштування компілятора і завантажив його! :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.