STLcardsWS
Administrator
PlayStation 3 - lv0ldr: Teensy in the Middle
by MikeM64
-
Table of Contents of Write-Up (see link at bottom for full write up)
- Introduction
- Acknowledgements
- Abbreviations
- History: Where did we leave off?
- PlayStation 3 SPI Architecture
- Syscon/Cell SPI Bus
- Overview
- Bus Transfer Protocol
- Syscon SPI Packet Protocol
- Juan Nadie's lv0ldr Software Exploit
- Working backwards from outside to inside
- Arbitrary SPI Read and Write
- Dynamic Controller Selection
- Priming lv0ldr
- Replacing SPU Interrupts with Luck
- CECH-2500 Exploit Setup
Introduction
NOTE: I do not condone or endorse piracy. As such, neither this exploit or write up will contain anything to enable piracy on the system.
Welcome to my write up on how to exploit lv0ldr using hardware on most PlayStation 3 systems. You can find the full source for the exploit in the repository here. The full setup required to use the exploit is described below in the section "CECH-2500 Exploit Setup". This exploit is a hardware-based implementation of the one released by Juan Nadie and the Three Musketeers back in 2012.
Acknowledgements
- Thanks to Jestero and M4j0r for your assistance and knowledge in getting this exploit running
- Thanks to Victor for your assistence in tracing the Slim 3000 syscon pinouts
- Greets to those in the assorted chat rooms that welcomed me back from retirement with open arms and patience while I got back up to speed again
- Thank you N. for your unyielding support in my hobbies.
-
History Lesson: Where did we leave off?
The PlayStation 3 has had very long homebrew story. At the initial release of the PS3, Linux support was baked in on day 1! People had the ability to install any PowerPC based distribution with full kernel support for the assorted system devices. This enabled all sorts of interesting uses like supercomputing clusters and a cheap PowerPC development box. There was some poking and prodding done from Linux to the hypervisor but nobody really bothered to dig too far until OtherOS support was removed from slim consoles. After the release of GeoHot's HTAB exploit, OtherOS was removed from all consoles in 3.21. This was the catalyst which opened the floodgates to complete exploit of the console. I've summarized the current state of many exploits released for the PS3 console below:
After the release of the sigfail exploit, Sony attempted to re-secure the bootchain by moving all loaders into lv0 as that had yet to be dumped or exploited. (Insert picture of bootchain from PS3DevWiki.) This was a good stop-gap solution until Juan Nadie and the Three Musketeers dumped lv0ldr and their exploit and keys were leaked. Once the LV0 keys were available, it was now possible to modify and re-sign all updatable code on older consoles. Consoles manufactured after the sigfail release were updated with new lv0 metadata (lv0.2) which is not vulnerable to the sigfail exploit.Exploit Version Enabled in LV1 Enabled in LV2 Notes GeoHot HTAB Glitching Any? R/W Arbitrary HV Memory N/A FPGA used to glitch memory address lines PSJailbreak Dongle 3.41 N/A Homebrew and run backups in GameOS, OtherOS support restored Dongles exploited USB device descriptor parsing to get code execution in LV2. fail0verflow Sigfail <= 3.55 Custom-signed LV1 Custom-signed LV2 Works on all consoles with a minver of <= 3.55. Post 3.55/Sigfail Era lv0ldr Syscon Packet TOCTOU - Linux Dumping Any? N/A N/A Dumped the lv0 root keys to allow decrypting of all LV0 executables and signing on <= 3.55 minver consoles. HEN <= 4.89 N/A Homebrew and run backups in GameOS No OtherOS support lv0ldr Syscon Packet TOCTOU - HW Remix Any? Custom code in LV1 Custom code in LV2 Should work on all consoles with HW. This is today's topic!
- Cell BE Bootrom -> lv0ldr (per-console encrypted) -> lv0
- Pre 3.60: lv0 -> metldr -> lv1ldr -> lv1 -> lv2ldr -> lv2 -> appldr-> vsh
- 3.60+: lv0 -> Scrambled loaders stored in lv0 -> metldr -> lv1ldr -> lv1 -> lv2ldr -> lv2 -> appldr -> vsh
- Cell BE Bootrom -> lv0ldr (per-console encrypted) -> lv0
READ Complete Write up by MikeM64 @
https://github.com/MikeM64/Exploit-Writeups/blob/main/PS3/lv0ldr-spi-mitm/lv0ldr-spi-mitm.md
Last edited:
