python import gdb import json import os import socket import struct import sys import tempfile HANDOFF_PC = 0xACA00000 COMMAND_LINE_OFFSET = 108 COMMAND_LINE_SIZE = 608 DEVICE_TREE_POINTER_OFFSET = 96 VIRTUAL_BASE_OFFSET = 8 PHYSICAL_BASE_OFFSET = 16 KVM_MMIO_SIGNATURE = struct.pack( "= COMMAND_LINE_SIZE: raise gdb.GdbError("invalid XNU command line") gdb.execute("set architecture aarch64", to_string=True) gdb.execute(f"target remote :{port}", to_string=True) breakpoint = gdb.Breakpoint( f"*{HANDOFF_PC:#x}", type=gdb.BP_HARDWARE_BREAKPOINT, internal=True ) breakpoint.ignore_count = 1 gdb.execute("continue", to_string=True) if int(gdb.parse_and_eval("$pc")) != HANDOFF_PC: raise gdb.GdbError("unexpected XNU handoff address") boot_args = int(gdb.parse_and_eval("$x1")) inferior = gdb.selected_inferior() revision, version = struct.unpack("