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.
Questa nuova versione aggiunge il supporto ai payload collegati con oggetti condivisi .so
, consentendo il loro caricamento tramite dlopen
. Sono stati inoltre inclusi esempi aggiornati con impostazioni per Visual Studio Code in CMake e il supporto per host che utilizzano LLVM 19.
Le modifiche alla documentazione includono l’aggiunta di istruzioni per l’uso su Fedora. Dal lato tecnico, le librerie condivise (prospero-nid
) ora sono collegate dinamicamente per risolvere problemi con OS privi di libc statica preinstallata.
Altre modifiche ai moduli includono la rimozione di libm
a causa della mancanza di supporto per numeri complessi, raccomandando l’uso di openlibm
, e l’aggiornamento del nome dei file .sprx
al posto di .so
.
La libreria libc è stata migliorata con l’aggiunta di funzioni come qsort_r
, dirfd
, strsignal
e reallocarray
, oltre a nuovi stub per funzioni attualmente non supportate su PS5.
Inoltre è stata scollegata dal crt
per una maggiore modularità. Infine, in libcxxabi è stato abilitato il supporto ai thread, migliorando la compatibilità con ambienti multithread.
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
- rtld: Aggiunto il supporto ai payload collegati con oggetti condivisi
.so
, permettendo il caricamento tramitedlopen
. - examples: Aggiunte impostazioni per Visual Studio Code all’esempio CMake.
- Aggiunto il supporto per host che utilizzano LLVM 19.
- readme: Aggiunte istruzioni per Fedora.
- prospero-nid: Collegamento dinamico, poiché alcuni sistemi operativi non includono una libc statica di default.
- sce_stubs: Rimossa la libreria
libm
a causa della mancanza di supporto per i numeri complessi (gli utenti possono installareopenlibm
come alternativa). - sce_stubs: Impostato il nome del file (
soname
) come*.sprx
anziché*.so
. - libc: Scollegata dal
crt
per una maggiore modularità. - libc: Aggiunte le funzioni
qsort_r
,dirfd
,strsignal
ereallocarray
. - libc: Aggiunti alcuni stub per funzioni attualmente non funzionanti su PS5.
- libcxxabi: Abilitato il supporto ai thread.
- rtld: Corretto l’arresto anomalo durante la liberazione di elementi nell’elenco collegato delle librerie caricate. v0.22.1
Download: PS5 Payload SDK v0.22.1
Download: Source code PS5 Payload SDK v0.22.1
Fonte: github.com