36C3 -  KTRW: The journey to build a debuggable iPhone
Channel: media.ccc.de
Date: 29/12/2019

https://media.ccc.de/v/36c3-10806-ktrw_the_journey_to_build_a_debuggable_iphone



Development-fused iPhones with hardware debugging features like JTAG are out of reach for many security researchers. This talk takes you along my journey to create a similar capability using off-the-shelf iPhones. We'll look at a way to break KTRR, a custom hardware mitigation Apple developed to prevent kernel patches, and use this capability to load a kernel extension that enables full-featured, single-step kernel debugging with LLDB on production iPhones.

This talk walks through the discovery of hardware debug registers on the iPhone X that enable low-level debugging of a CPU core at any time during its operation. By single-stepping execution of the reset vector, we can modify register state at key points to disable KTRR and remap the kernel as writable. I'll then describe how I used this capability to develop an iOS kext loader and a kernel extension called KTRW that can be used to debug the kernel with LLDB over USB.

Brandon Azad

https://fahrplan.events.ccc.de/congress/2019/Fahrplan/events/10806.html