2026-08-31
- Disassembled klog.elf around image+0x2708:
kernel_copyout, setsockopt, and high-half kpipe_addr (D411)
Investigated the wall at image+0x2708 in
klog.elf. Disassembly of the binary revealed:
__crt_startcallskernel_dynlib_dlsym(-1, 0x2001, "sceKernelDlsym")(and fallbackkernel_dynlib_dlsym(-1, 2, "exit")).kernel_dynlib_dlsymcallskernel_dynlib_resolve, which callskernel_dynlib_obj(-1, ...).kernel_dynlib_objcallskernel_get_proc(-1)andkernel_copyoutto readproc->p_dynlibat offset+0x3e8in kernel memory.kernel_copyoutvalidates thatkpipe_addr >> 48 != 0(requiring a canonical high-half kernel pointer, e.g.0xffff86615c607840), usessetsockopt(Syscall 105) on therwpairsockets withIPPROTO_IPV6(0x29) andIPV6_PKTINFO(0x2e), and performsreadonrwpipe[0]to read kernel structures into userland.- Because
kpipe_addrhad been a low-half pointer (FIRMWARE_BASE + offset),kernel_copyoutbailed withEFAULT(14) before attempting any syscall, causingkernel_dynlib_dlsymto return NULL and__crt_startto jump toud2at0x2708.
Fixed measured_handoff_fields in
crates/orbistoun-worker/src/lib.rs to hand over the
measured canonical high-half addresses 0xffff86615c607840
(kpipe_addr) and 0xffffffff8c290000
(kdata_base_addr) as confirmed in D408.