
Ecco ps5-fakexen, quello che avrebbe dovuto essere la soluzione per eseguire Linux sotto l’hypervisor della PS5. Il codice è stato sviluppato partendo dall’ipotesi che GMET (Guest Mode Execution Trap) fosse attivo nell’hypervisor della console, limitando l’esecuzione alle sole pagine di codice kernel autentico.
Tuttavia, si è scoperto che questa protezione non era effettivamente presente nella PS5, rendendo questo approccio non necessario per far girare Linux sulla console. Di conseguenza, il codice viene ora rilasciato “as is” per motivi storici e, nel caso improbabile in cui Sony dovesse correggere questa vulnerabilità in firmware futuri (cosa che, a quanto ne so, potrebbero fare).
Come compilare Linux
Posiziona il tuo kernel Linux (in formato vmlinux, non bzImage) in:
linux/linux-6.12.8/vmlinux
Assicurati che sia abilitata l’opzione CONFIG_XEN_PV
.
Esecuzione su QEMU
Per eseguire su QEMU, entra nella directory fakexen
e lancia:
make qemu
L’emulazione sarà lenta, a meno che la tua CPU non abbia 16+ core.
Il file loader/frankenkernel.elf
contiene un finto “kernel BSD” con tutti i gadget necessari a fakexen, quindi non è necessario avere accesso a kernel decrittati per testare il codice.
Esecuzione su hardware reale
- Esegui
make
nella directory principale per generare il payloadpayload.bin
. - Dopo aver caricato il payload, invia il file
vmlinux
via TCP sulla porta 9999.- È consigliato rimuovere i simboli di debug (
strip
) per ridurre le dimensioni (il Makefile inloader/
lo fa automaticamente).
- È consigliato rimuovere i simboli di debug (
Hardware necessario
Sarà necessario saldare ai testpad UART della scheda madre della PS5 (sul chip Titania). Non verranno fornite ulteriori istruzioni su come farlo in questo articolo.
Se tutto è stato configurato correttamente, dovresti vedere dei log (si spera utili) sull’UART.
GDB Stub integrato
È presente uno stub GDB per il debug del kernel Linux. Per attivarlo:
- Invia alcuni byte via seriale durante le fasi iniziali di caricamento.
- Avvia GDB con lo script
connect-ps5.gdb
.
Il debugger verrà attivato anche in caso di crash all’interno di fakexen, ma in quel caso sarà possibile solo un’analisi post-mortem: tentare di riavviare fakexen potrebbe causare ulteriori problemi.
Limitazioni e avvertenze
- Non è un progetto rifinito: potrebbe rompersi se non si usa
maxcpus=1
nella command line del kernel (vedifakexen/linux.c
). - Potrebbe contenere bug arbitrari che lo rendono vulnerabile ad attacchi dallo userspace.
- Non è pensato per uso “production”: è più una curiosità storica e un piano di riserva nel caso Sony corregga la vulnerabilità.
🔗 Codice sorgente: GitHub – sleirsgoevy/ps4jb-payloads/ps5-fakexen
Usa con cautela. Non utilizzare in ambienti critici. Sei stato avvisato.