Pubblicato un nuovo aggiornamento per PS5 Payload SDK, il software developer kit 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.
In questa nuova versione, sono state introdotte diverse migliorie: per il C++, i simboli C ora vengono dichiarati nel namespace extern “C”.
Su Windows, sono stati aggiunti diversi comandi: prospero-deploy
per inviare payload a un ELF loader, prospero-cmake
per impostare valori predefiniti prima di chiamare cmake, prospero-clang
e prospero-clang++
per invocare i compilatori, e prospero-lld
, necessario per i compilatori che compilano e linkano nello stesso comando.
Per il kernel, è stato aggiunto il valore costante KERNEL_ADDRESS_TEXT_BASE
per l’indirizzo base di .text
, insieme a funzioni pratiche per l’accesso alla memoria.
Infine, in meson è stata introdotta una protezione per evitare che i payload vengano eseguiti sul sistema host durante la configurazione dei progetti, mentre in mdbg sono state aggiunte funzioni comode per il debugging.
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
- C++: Dichiara i simboli C nel namespace extern “C”.
- Windows: Aggiunto il comando
prospero-deploy
per inviare payload a un ELF loader. - Windows: Aggiunto il comando
prospero-cmake
per impostare valori predefiniti prima di chiamare cmake. - Windows: Aggiunti i comandi
prospero-clang
eprospero-clang++
per invocare i compilatori. - Windows: Aggiunto il comando
prospero-lld
, necessario per i compilatori che compilano e linkano nello stesso comando. - Kernel: Aggiunto la costante
KERNEL_ADDRESS_TEXT_BASE
per l’indirizzo base di.text
. - Kernel: Aggiunte funzioni pratiche per accedere alla memoria arbitraria.
- Meson: Garantiti che i payload non vengano eseguiti sul sistema host durante la configurazione dei progetti.
- Mdbg: Aggiunte funzioni comode per il debugging.
Download: PS5 Payload SDK v0.19
Download: Source code PS5 Payload SDK v0.19
Fonte: github.com