1、越狱设备并设置启动参数无法立即调试iOS内核。这是因为Apple工程师不想让发现漏洞更容易。因此,我们必须先越狱设备才能设置正确的引导参数并应用适当的内核补丁。使用RedSn0w越狱iOS设备的过程已在其他地方广泛讨论,但是使用该工具时添加适当的启动参数至关重要。您可以通过转到附加功能->更多->首选项->启动Args来实现。在文本框中,您应该输入以下字符串“ debug = 0x8f -v wdt = 0”。这些参数依次告诉内核:使用特殊标志以调试模式启动以详细模式启动在禁用看门狗定时器的情况下进行引导,因此可以在任意时间暂停执行而不会被杀死。现在启动时,设备将在启动时停止,并等待您连接调试器。

2、使用SerialKDPproxy现在,该设备已停止并等待连接调试器,我们需要启动serialKDPproxy。用法只是./SerialKDPProxy。例如,对我来说就是./SerialKDPProxy /dev/tty.usbserial-AH00NR2W。此后,应该有各种调试消息从设备输出到控制台。您还可以在设备启动之前运行此程序,并且会有大量的输出,这将帮助您显示设备打开时真正发生的事情。例如,将显示内核幻灯片,这将使我们能够确定函数地址。

3、与GDB附加由于serialKDPproxy现在正在按照我们想要的方式转发连接。现在,连接到内核非常简单。首先,您需要使用以下命令启动gdb。gdb -arch armv7。这告诉gdb,它将调试iOS设备,而不是具有i386体系结构的OS X应用程序。在gdb提示符下之后,连接所需要做的就是键入target remote-kdp,然后附加localhost。您应该得到一个回复,说您已连接。如果没有,请确保输入正确的引导参数,并确保您已将serialKDPproxy连接到正确的设备。

