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.
L’aggiornamento include una correzione per i crash che si verificavano durante il caricamento dei payload tramite il JavaScript ELF loader.
Introdotto inoltre un gestore di segnali che intercetta i segnali POSIX critici e genera una traccia dello stack salvata in /dev/klog
, migliorando il debug.
Aggiunto un supporto rudimentale per i procedure linkage tables (plt), insieme all’esposizione dell’indirizzo kernel_dynlib_mapbase_addr
agli utenti dell’SDK.
Sul lato della libreria C (libc), sono stati implementati nuovi stub per la funzione getservbyname()
e la funzione getservbyport()
, oltre all’aggiunta di alcuni nomi di servizi predefiniti per il metodo getnameinfo()
.
Inoltre, sono stati risolti problemi relativi agli script di comando su sistemi Windows e migliorato il wrapper di clang
per gestire correttamente i casi in cui non viene fornita alcuna unità di traduzione.
Infine, nella sezione sce_stubs
, è stata aggiunta la libreria libSceSysmodule
, ampliando ulteriormente le funzionalità disponibili per gli sviluppatori.
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: Corretti i crash che si verificavano durante il caricamento dei payload tramite il JavaScript ELF loader.
- crt: Aggiunto un gestore di segnali che intercetta i segnali POSIX critici e genera una traccia dello stack in
/dev/klog
. - crt: Introdotto un supporto rudimentale per i procedure linkage tables (plt).
- crt: Esposto l’indirizzo
kernel_dynlib_mapbase_addr
agli utenti dell’SDK. - libc: Aggiunto uno stub per la funzione
getservbyname()
. - libc: Implementata la funzione
getservbyport()
. - libc: Inseriti alcuni nomi di servizi predefiniti per la funzione
getnameinfo()
. - host: Correzione degli script di comando per sistemi Windows.
- host: Sistemato il wrapper per
clang
per gestire correttamente i casi senza unità di traduzione fornita. - sce_stubs: Aggiunta la libreria
libSceSysmodule
.
Download: PS5 Payload SDK v0.23
Download: Source code PS5 Payload SDK v0.23
Fonte: github.com