Pubblicato un nuovo aggiornamento per PS5 Payload SDK, il toolkit sviluppato dal developer John Törnblom viene utilizzato per creare payload ELF destinati alle console PlayStation 5.
PS5 Payload SDK include diversi artefatti provenienti dal progetto PS5SDK, fornendo agli sviluppatori strumenti aggiornati per creare e testare payload su console PS5 sfruttate.
L’SDK offre un ambiente di sviluppo ottimizzato per la creazione di applicazioni e funzionalità personalizzate per le console PlayStation 5, consentendo agli sviluppatori di sfruttare appieno le potenzialità della piattaforma.
Questo nuovo aggiornamento introduce diverse novità e miglioramenti, come l’ottimizzazione della funzione stacktrace stampata su /dev/klog
quando un payload si arresta in modo anomalo, facilitando così l’analisi e la risoluzione dei problemi.
Inoltre, è stata aggiunta una nuova funzione, kernel_mprotect()
, che consente di aggirare le restrizioni di permesso associate alla syscall standard mprotect, aumentando la flessibilità nella gestione della memoria.
Un ulteriore miglioramento include l’eliminazione dell’allocazione di memoria condivisa, con un impatto positivo sulle prestazioni e sulla stabilità.
Infine, nella libreria libc, è stato abilitato il supporto per mmap e mprotect al fine di mappare memoria eseguibile, ampliando le possibilità per i payload creati con il toolkit.
Requisiti
Sui sistemi operativi Debian, è possibile eseguire il seguente comando per installare le dipendenze utilizzate dall’SDK: john@localhost:ps5-payload-sdk$ sudo apt-get install bash socat cmake pkg-config clang-15 lld-15
Building
john@localhost:ps5-payload-sdk$ make
Installazione
john@localhost:ps5-payload-sdk$ make DESTDIR=/opt/ps5-payload-sdk install
Utilizzo
john@localhost:ps5-payload-sdk$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk john@localhost:ps5-payload-sdk$ make -C samples/hello_world john@localhost:ps5-payload-sdk$ export PS5_HOST=ps5; export PS5_PORT=9021 john@localhost:ps5-payload-sdk$ make -C samples/hello_world test
Aggiunta di nuove librerie SCE
Se si hanno file sprx decifrati con cui si desidera interagire, è possibile creare degli stub per essi nel seguente modo:
john@localhost:ps5-payload-sdk$ sudo apt-get install wget python3 python3-pyelftools john@localhost:ps5-payload-sdk$ cp /path/to/sprx/libSceXYZ.sprx sce_stubs/ john@localhost:ps5-payload-sdk$ make -C sce_stubs stubs john@localhost:ps5-payload-sdk$ make DESTDIR=/opt/ps5-payload-sdk install
Segnalazione di bug
Se si incontrano problemi con ps5-payload-sdk, è consigliabile aprire una segnalazione su GitHub. Nel caso si preveda di inviare richieste di pull che interessano più di poche righe di codice, è preferibile aprire una segnalazione prima di iniziare a lavorare sulle modifiche.
Questo permetterà di discutere adeguatamente della soluzione prima di impegnare tempo ed energie.
Changelog
- crt: Migliorato lo stacktrace stampato su
/dev/klog
quando un payload si arresta in modo anomalo - crt: Aggiunta la funzione
kernel_mprotect()
per aggirare i permessi associati alla syscall standardmprotect
. - crt: Evita l’allocazione di memoria condivisa.
- libc: Consenti a
mmap
emprotect
di mappare la memoria eseguibile.
Download: PS5 Payload SDK v0.24
Download: Source code PS5 Payload SDK v0.24
Fonte: github.com