Wrote an article about turning a ThinkPad X1 Carbon 6th Gen laptop into a programmable USB device by enabling the xDCI controller 😯

Now I can emulate USB devices from the laptop without any external hardware, including via Raw Gadget or even Facedancer 😁

The overall process included fiddling with Linux kernel drivers, xHCI, DWC3, ACPI, BIOS/UEFI, Boot Guard, TPM, NVRAM, PCH, PMC, PSF, IOSF, and P2SB, and making a custom USB cable 😱

xairy.io/articles/thinkpad-xdc

Follow

@xairy the lock bits being reset during S3 sleep and not re-locked seems like an evergreen design failure. Thunderstrike 2 used a similar mistake (PRR lock bits not re-locked soon enough coming out of S3 sleep) and Prince Harming was a regression (PRR bits not re-locked at all on a new platform). trmm.net/Thunderstrike2_detail

Sign in to participate in the conversation
(void *) social site

(void*)