在MacOS平台中使用LLDB进行系统内核调试分析的3种方法

本文介绍了在MacOS平台上使用LLDB进行系统内核调试的三种方法,强调了如何在保持SIP(系统完整性保护)启用的状态下进行调试。调试设置涉及VMware Fusion、内核调试工具包(KDK)、LLDB和GDB stub。通过不同的配置,可以在不关闭SIP的情况下研究macOS内核,包括使用内核发行版、调试或开发内核,并讨论了如何处理硬件断点限制。
摘要由CSDN通过智能技术生成

对于安全研究人员来说,他们经常需要研究各种内核,以充分了解研究目标。在Windows平台上这样做并不是什么难事,因为有无数关于内核调试设置的现成文章。但是,对于macOS,情况就略有不同。

有很多文章已经描述了如何在两台设备之间设置内核调试,但是所有这些都建议应该禁用SIP(系统完整性保护)进行内核调试。如果我们要调查macOS安全机制的内部运作,则会产生问题,因为关闭SIP也会关闭操作系统的大多数基本安全功能。

这篇文章将会介绍几个设置,这些设置使你可以在调试时启用SIP。

设置如下:

主机:带有补充更新的macOS Catalina 10.15.4;

来宾:具有补充更新的macOS Catalina 10.15.4;

VMware Fusion 11.5.3;

调试器:LLDB;

第一种方法

我们将从调试内核的原始发行版开始,该发行版默认包含在macOS中。到目前为止,这是我们将看到的最简单的方法。

第一步是从Apple的开发人员下载中下载内核调试工具包(KDK)。但是,在执行此操作之前,我们需要确定感兴趣的构建版本。这可以通过在来宾VM上使用以下命令来完成:

% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.4
BuildVersion:   19E287

检索内核构建版本信息

知道BuildVersion编号后,就可以下载相应的KDK并将其安装在主机上。奇热它将安装在/ Library / Developer / KDKs /下。

% ls -l /Library/Developer/KDKs/KDK_10.15.4_19E287.kdk/System/Library/Kernels/
total 212112
-rwxr-xr-x  1 root  wheel  16030560 Mar  5 07:38 kernel
drwxr-xr-x  3 root  wheel    96 Mar  5 07:38 kernel.dSYM
-rwxr-xr-x  1 root  wheel  23795528 Mar  5 07:27 kernel.debug
drwxr-xr-x  3 root  wheel    96 Mar  5 07:27 kernel.debug.dSYM
-rwxr-xr-x  1 root  wheel  19329072 Mar  5 07:39 kernel.development
drwxr-xr-x  3 root  wheel    96 Mar  5 07:39 kernel.development.dSYM
-rwxr-xr-x  1 root  wheel  49436536 Mar  5 07:30 kernel.kasan

KDK的位置

下一步是在来宾VM上启用远程调试。幸运的是,VMware Fusion具有一个称为gdb stub的功能,该功能可以设置GDB服务器,并允许调试器使用GDB远程协议调试任何VM(包括Windows)。由于LLDB支持GDB协议,因此我们可以使用这种方法。

要为我们的来宾VM启用GDB存根,就需要在虚拟机vmx配置文件中添加以下行

debugStub.listen.guest64 = "TRUE"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值