如何在OSX中访问/ dev / mem(或/ dev / kmem,/ dev / pmap)等效设备?
据我所知,它在某些时候已被删除。
我可以通过某种方式手动创建此节点或以其他任何方式转储物理内存吗?
看到:
如何在OSX中访问/ dev / mem(或/ dev / kmem,/ dev / pmap)等效设备?
据我所知,它在某些时候已被删除。
我可以通过某种方式手动创建此节点或以其他任何方式转储物理内存吗?
看到:
Answers:
根据访问内核内存在Mac OS X x86版本,/dev/mem
以及/dev/kmem
被拆除时,苹果发布OS X的英特尔处理器。
(优秀的)文章还介绍了如何重新启用内存设备,即使用kmem=1
内核引导参数。
请注意,如下面Neal所述,在macOS 10.15 Catalina(可能是从macOS 10.12 Sierra开始)中,只有在Mac引导到恢复模式时才能更改NVRAM设置。要进入恢复模式,请打开Mac并立即按住⌘-R直到出现徽标,然后从菜单栏中的“实用工具”菜单启动“终端”,然后运行:
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)中,您可以重新启用操作系统中的存储设备,因此只需启动终端,在上方键入命令并重新启动。)
如果您的Mac无法启动或有任何问题,请⌘optionPR按住键直到第二次听到启动声音,以重置NVRAM,如HT1379 KB中的“重置NVRAM / PRAM”中有关NVRAM和PRAM所述。
如果您想重设参数,请键入sudo nvram -d boot-args
并检查它nvram -p | grep boot-args
不会显示任何结果。
我想我可以在macOS Sierra上工作了!我下载了comex的项目:
Kmem项目
我编译了kext,修复了权限,然后加载了它!在终端上,我进入/dev
并ls
展示了mem
和kmem
...
编辑:如果您下载项目,则只需更改Xcode中的编译器以使用最新版本(例如...我不知道其他版本是否可以运行...)。为了快速访问结果,我已经做了在macOS Sierra上编译的comex项目的一个分支!Kmem for Sierra Fork
同样,这是comex的工作,不是我的,我只是更改了编译器设置并上传了它!:)
/dev
.. 下。也许您知道Apple是否关闭了该选项,以及是否还有另一种方法可以在10.12中访问此内存?