Macos双机调试内核(Parallels desktop)
Posted 麦金塔实践
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Macos双机调试内核(Parallels desktop)相关的知识,希望对你有一定的参考价值。
具体步骤:
I. Host:macos的内核文件目录:/System/Library/Kernels,可以copy一份到其他调试目录,如果其他KDK的内核文件也是需要copy一份到这里,不同版本采用方法不同
II. VM: 这是是Parallels Desktop,VMWare网上文章比较多
第一步:要disable SIP
0. Shutdown your macOS VM.
1. Add to its boot flags (VM config -> Hardware -> Boot Order -> Advanced settings -> Boot flags) string "vm.efi.mac_recovery=1" - this forces VM to boot into Recovery mode.
2. Start your VM and it will be in Recovery.
3. Disable SIP.
4. Shutdown VM.
5. Disable Recovery mode setting boot flat value to "0".
6. Start VM - it will boot normally but without SIP.
第二步:
KDK需要把/Library/Developer/KDKs/KDK_xxx.kdk/System/Library/Kernels/kernel.development的文件copy到/System/Library/Kernels目录
注意mac OS 10.15 Catalina之后根分区只读,需要关闭SIP之后Remount RootFS
sudo mount -uw /
sudo cp kernel.development /System/Library/Kernels
第三步:
Boot flags设置:
devices.mac.boot_args="debug=0x146 -v watchdog=0 pmuflags=1"
如果是KDK,设置
devices.mac.boot_args="debug=0x146 -v watchdog=0 pmuflags=1 kcsuffix=development"
vmware或者真机用nvram命令设置:
$ sudo nvram boot-args="debug=0x146 kext-dev-mode=1 kcsuffix=development keepsyms=1"
第四步:
启动被调试虚拟机,打开console,输入命令
$ sudo dtrace -w -n “BEGIN { breakpoint(); }”
VM挂起,等待调试
III. Host
lldb kernel文件
(lldb) kdp-remote vm的ip地址
然后就断在breakpoint上
enjoy。
参考链接:
https://pwnorz.com/kdk-debug/
http://www.hari.xyz/2019/01/setting-up-os-x-for-kernel-debugging.html
以上是关于Macos双机调试内核(Parallels desktop)的主要内容,如果未能解决你的问题,请参考以下文章