Durante la Security Analyst Summit 2024, il developer e ricercatore di sicurezza shuffle2 ha presentato una dettagliata analisi della sicurezza della console PlayStation 5, concentrandosi principalmente su come proteggere il sistema contro attacchi e possibili exploit.
Subito dopo la presentazione, shuffle2 ha rilasciato un nuovo strumento denominato ps5-uart, progettato per interagire con i componenti di gestione della PS5, EMC (Embedded Microcontroller) ed EFC (Embedded Flash Controller).
Here's the link to the tool I meant to release at the end: https://t.co/iikVzrad6I
It makes fiddling with EMC/EFC/EAP easy, have fun!— shuffle2 (@shuffle2) October 23, 2024
Ps5-uart è uno strumento scritto in Python che permette di sbloccare e manipolare le funzioni avanzate di EMC ed EFC della PS5 tramite l’interfaccia UART.
Questi componenti giocano un ruolo cruciale nella gestione della console durante il boot e nel controllo dei suoi sistemi principali.
Tramite questo tool, i ricercatori possono eseguire comandi e caricare codici direttamente su questi controller, consentendo di esplorare le capacità della console a un livello molto basso.
Utilizzo
L’utilizzo dello strumento richiede alcuni passaggi tecnici, inclusa la programmazione di un Raspberry Pi Pico per fungere da interfaccia UART con la PS5. Di seguito una guida dettagliata su come iniziare:
Compilazione del progetto
Prima di tutto, è necessario creare una directory di build ed eseguire i seguenti comandi: mkdir build && cd build && cmake -GNinja .. && cmake --build
Questo processo genererà i file di output nella cartella bin/
. Il file uart.uf2
sarà necessario per programmare il Raspberry Pi Pico, che servirà da interfaccia UART tra lo strumento e la PS5.
Programmare il Raspberry Pi Pico
Il Raspberry Pi Pico deve essere programmato con il file bin/uart.uf2
generato poco sopra.
Utilizzo dello strumento
Una volta configurato il Raspberry Pi Pico, si può avviare lo script Python tool.py
per entrare nella shell interattiva. Da qui, si possono eseguire vari comandi per controllare la PS5, come:
emc.screset()
: Esegue un reset del syscon (EMC) e riporta la scheda madre della PS5 in uno stato consistente.emc.unlock()
: Sblocca l’accesso completo ai comandi di EMC utilizzando il protocollo UCMD, consentendo il controllo avanzato del sistema.emc.unlock_efc()
: Esegue l’exploit EFC e carica il fileuart_shell.cpp
, permettendo di interagire con EFC tramite lo scriptuart_client.py
.emc.load_eap()
: Sblocca EAP e carica lo stesso fileuart_shell.cpp
per l’interazione.
Funzionalità avanzate
Lo strumento ps5-uart consente anche una serie di operazioni avanzate per ricercatori e sviluppatori:
- Reset del syscon (EMC): Si può eseguire un reset hardware della PS5 per garantire un avvio pulito e coerente della console.
- Sblocco e controllo di EFC ed EAP: Con i comandi di sblocco, è possibile caricare codice direttamente su questi controller e analizzare il comportamento del sistema in fase di boot o durante il funzionamento della console.
- Manipolazione di firmware: Ps5-uart consente di caricare e interagire con specifiche porzioni di firmware, offrendo la possibilità di sperimentare con firmware personalizzati o recuperare informazioni tecniche avanzate.
Nella documentazione del progetto ps5-uart, presente in uart/README.md, sono incluse istruzioni dettagliate per il collegamento del Raspberry Pi Pico tramite UART alla PlayStation 5.
Queste istruzioni spiegano come effettuare il wiring corretto tra i pin del Pico e i punti di connessione della PS5 per poter interagire con i componenti EMC (Embedded Microcontroller) ed EFC (Embedded Flash Controller).
Download: Source code ps5-uart
Fonte: x.com