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)的主要内容,如果未能解决你的问题,请参考以下文章

macos 环境下搭建 windbg 虚拟机双机调试环境

macos 环境下搭建 windbg 虚拟机双机调试环境

macos 环境下搭建 windbg 虚拟机双机调试环境

内核调试之双机调试环境的搭建

[原]通过网线进行双机内核调试

linux双机调试