Il developer John Törnblom, spinto anche dagli ultimi sviluppi di SpecterDev, è tornato sulla scena con un aggiornamento di PS5 Payload SDK, un software open source utilizzato per sviluppare payload ELF per le 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.
Il file ELF di esempio incluso nell’SDK stampa sullo schermo la scritta “Hello World”. Questo file è stato fornito come esempio per illustrare il funzionamento dell’SDK e dimostrare come eseguire un payload di base sulla console PlayStation 5.
Questo nuovo aggiornamento aggiunge appunto gli offset del kernel per le versioni firmware 2.00, 2.20, 2.25, 2.26 e 2.50, oltre a diverse nuove funzioni nella libreria libc come ctime_r
, ffs
, fls
, getmntinfo
, localtime_r
, times
, strcasecmp
, mkstemp
, arc4random
, dlopen
, dlsym
, dlclose
e alcune funzioni di rete.
Sono stati inclusi anche stub vuoti per le funzioni getpwnam_r
e getpwuid_r
. Inoltre, l’aggiornamento introduce due nuovi strumenti: prospero-fetchpkg, per scaricare pacchetti ufficiali PS4 e PS5, e prospero-nid, per codificare simboli in NID.
Miglioramenti sono stati apportati alle variabili d’ambiente predefinite del toolchain, semplificando la compilazione cross-platform per homebrew. Inoltre è stata risolta la compatibilità con il caricatore ELF JavaScript WebKit.
Nella versione 0.16.1 pubblicata proprio ora sono stati aggiunti gli offset del kernel per le versioni del firmware 1.05, 1.10, 1.11, 1.12, 1.13 e 1.14.
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
- kernel: Aggiunti offset per le versioni firmware 2.00, 2.20, 2.25, 2.26 e 2.50.
- libc: Aggiunte le funzioni
ctime_r
,ffs
,fls
,getmntinfo
,localtime_r
,times
,strcasecmp
,mkstemp
,arc4random
,dlopen
,dlsym
,dlclose
e alcune funzioni di rete. - libc: Aggiunti stub vuoti per le funzioni
getpwnam_r
egetpwuid_r
- prospero-fetchpkg: Primo commit di uno strumento host per scaricare pacchetti ufficiali PS4 o PS5.
- prospero-nid: Primo commit di uno strumento host che codifica i simboli in NID.
- Migliorati i valori predefiniti delle variabili d’ambiente del toolchain, semplificando la cross-compilazione per homebrew.
- Corretta la compatibilità con il caricatore ELF WebKit JavaScript.
- kernel: Aggiunta di offset per le versioni del firmware 1.05, 1.10, 1.11, 1.12, 1.13 e 1.14. v0.16.1
Download: PS5 Payload SDK v0.16.1
Download: Source code PS5 Payload SDK v0.16.1
Fonte: github.com