Il consulente e ricercatore McCaulay Hudson ha mantenuto la parola data pubblicando il codice sorgente dell’exploit mast1c0re, il framework ci permette di sfuggire all’emulatore PlayStation ed eseguire codice nativo sulla console PlayStation 4 e PlayStation 5.
Questo progetto è destinato agli sviluppatori, non agli utenti finali. Sono inoltre inclusi alcuni progetti di esempio di base per consentire agli sviluppatori di apprendere alcune funzionalità di utilizzo.
mast1c0re – Framework for escaping the PlayStation emulator and executing native code. (For developers)https://t.co/giAvpBdbuW
— McCaulay (@_mccaulay) February 18, 2023
Le richieste pull per i miglioramenti dell’SDK sono incoraggiate. Breakout non è affidabile al 100%. Riaprire il gioco se si blocca.
Dal readme della repository
Il progetto “mast1c0re” fornisce il framework necessario per lo sviluppo di payload che possono essere eseguiti su console PlayStation 4 o PlayStation 5 tramite un file di salvataggio della PlayStation 2 tramite l’escape dell’emulatore PlayStation.
Per ulteriori informazioni sul funzionamento interno delle vulnerabilità utilizzate all’interno di questo progetto, vedere il post sul blog associato “mast1c0re: Part 3 – Escaping the emulator” e il post sul blog originale “mast1c0re: Hacking the PS4 / PS5 through the PS2 Emulator – Part 1 – Escape” di CTurt.
Installazione
[stextbox id=’info’]NOTA: Si consiglia di utilizzare una distribuzione Linux come Ubuntu, poiché il supporto di Windows non è stato testato.[/stextbox]
Per iniziare a sviluppare utilizzando questo repository mast1c0re, sono necessarie le seguenti dipendenze:
Clonare la repository mast1c0re e aggiungere il percorso alla variabile ENV $MAST1C0RE
:
git clone git@github.com/McCaulay/mast1c0re.git /opt/mast1c0re/
echo 'export MAST1C0RE=/opt/mast1c0re/' >> ~/.bashrc
source ~/.bashrc
Compilazione del progetto
Tutti i progetti di esempio elencati sono stati forniti con uno script build.sh
che compila il progetto per i sistemi di destinazione e le versioni del firmware.
Nota che la versione del firmware “0.00” significa che il file di salvataggio del gioco dovrebbe essere compatibile con tutte le versioni del firmware.
Compilare un progetto di esempio di destinazione modificando la directory in quel progetto, quindi eseguire lo script build.sh
:
cd samples/ps-load-game-net
./build.sh
Prossimi passi
- Invia e carica il file di configurazione
config-emu-ps4.txt
(https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List). - L’emulatore carica il file lua.
- Esecuzione di codice nativo arbitrario (CTurtE’s mast1c0re Part 2).
- Exploit del kernel.
- Supporto EBOOT v1.0.
- Supporto aggiuntivo per la versione del firmware.
- Carica i giochi PS2 da USB.
- Carica i giochi PS2 dall’HDD.
- Rendere le chiamate di sistema indipendenti dal firmware.
- Ulteriori exploit di salvataggio del gioco PS2 per altri giochi (cambiare il binario “okrager” per un altro gioco).
Idee di progetto
- ps-psh – Server di comando shell primitivo che consente di comunicare con il terminale telnet alla PS4/PS5.
- pwd – Stampa la directory di lavoro corrente.
- cd – Cambia directory.
- ls – Elenca i file nella directory di lavoro corrente.
- cp – Copia un file.
- mv – Sposta un file o una directory/rinomina.
- rm – Elimina un file.
- download – Scarica un file dalla console remota al sistema locale.
- upload – Carica un file dal sistema locale alla console remota.
- play – Monta e riproduce un file ISO PS2.
- notifica – Mostra una notifica PS.
- root – Exploit del kernel (dipendente dal firmware).
- ps-ftp – Server FTP.
- ps-debug-settings – Abilita le impostazioni di debug utilizzando un exploit del kernel (dipendente dal firmware).
- ps-hen – Abilitatore homebrew che utilizza un exploit del kernel (dipendente dal firmware).
- ps-cnc – Server di comando e controllo remoto che supporta comandi TCP simili a ps-psh.
- App GUI desktop per gestire i giochi PS2 – Utilizzando “ps-cnc”, può caricare, gestire, montare e riprodurre i giochi PS2 archiviati su HDD.
Riferimenti
- https://cturt.github.io/mast1c0re.html
- https://psi-rockin.github.io/ps2tek/
- https://ps2dev.github.io/ps2sdk/index.html
- https://www.psdevwiki.com/ps4/PS2_Emulation
- https://www.psdevwiki.com/ps4/PS2_Classics_Emulator_Compatibility_List
- https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List
- https://www.psdevwiki.com/ps4/Syscalls
- http://fxr.watson.org/fxr/source/sys/syscall.h?v=FREEBSD-9-1
- https://cs.brown.edu/courses/cs033/docs/guides/x64_cheatsheet.pdf
- https://github.com/CTurt/PS4-SDK
- https://github.com/OpenOrbis/OpenOrbis-PS4-Toolchain
Fonte: twitter.com