Home Homebrew Rilasciato PS5 Payload SDK v0.35

[Scena PS5] Rilasciato PS5 Payload SDK v0.35

169
0

Pubblicato un nuovo aggiornamento per PS5 Payload SDK, il kit di sviluppo realizzato dal developer John Törnblom progettato per agevolare lo sviluppo e l’esecuzione di payload su console PlayStation 5 tramite gli exploit più diffusi.

Questo SDK si basa su componenti del PS5SDK e supporta diversi ELF loader già noti nella scena, tra cui ps5-payload-elfldr, ps5-payload-websrv, bdj-ipv6-hen, elfloader per BD-J ps5-jar-loader e remote_lua_loader, tutti compatibili con il sistema.

L’aggiornamento introduce miglioramenti tecnici mirati che incidono direttamente sul processo di compilazione e sul comportamento dei payload. Il linker lld ora consente di sovrascrivere lo script di linking predefinito, offrendo maggiore controllo agli sviluppatori su come viene organizzato il binario finale.

Sempre in ambito lld, viene disabilitata automaticamente l’opzione -pie quando si utilizza la compilazione --static, evitando configurazioni incoerenti e potenziali problemi in fase di build.

Sul fronte degli esempi inclusi nell’SDK, è stato aggiunto un nuovo sample che mostra come inviare notifiche di sistema utilizzando libSceNotification.sprx, rendendo più semplice l’implementazione di feedback visivi direttamente sulla console.

Sono presenti anche modifiche più profonde al runtime loader: l’ordine di ricerca delle librerie dinamiche è stato rivisto in modo che la directory corrente venga considerata per ultima, migliorando la prevedibilità del caricamento delle dipendenze.

Infine, lato kernel, sono state aggiunte nuove funzioni come kernel_get_ucred_uid e altre correlate, ampliando l’accesso alle informazioni sulle credenziali e offrendo nuove possibilità per lo sviluppo di payload avanzati e strumenti di debug.

Prerequisiti

Sui sistemi operativi basati su Debian è possibile eseguire i seguenti comandi per installare le dipendenze utilizzate dall’SDK:

arduino

john@localhost:ps5-payload-dev/sdk$ sudo apt-get update && sudo apt-get upgrade# opzionale
john@localhost:ps5-payload-dev/sdk$ sudo apt-get install bash clang-18 lld-18# richiesto
john@localhost:ps5-payload-dev/sdk$ sudo apt-get install socat cmake meson pkg-config# opzionale

Se si utilizza Fedora, le dipendenze possono essere installate come segue (testato con la versione 41):

bash

john@localhost:ps5-payload-dev/sdk$ sudo dnf install bash llvm-devel clang lld # richiesto
john@localhost:ps5-payload-dev/sdk$ sudo dnf install socat cmake meson pkg-config # opzionale

Su macOS è possibile installarle tramite il gestore di pacchetti Homebrew (testato con macOS Sequoia):

ruby

john@localhost:ps5-payload-dev/sdk$ brew install llvm@18 # richiesto
john@localhost:ps5-payload-dev/sdk$ export LLVM_CONFIG=/opt/homebrew/opt/llvm@18/bin/llvm-config # richiesto
john@localhost:ps5-payload-dev/sdk$ brew install socat cmake meson # opzionale

Avvio rapido

È possibile scaricare una distribuzione binaria dell’SDK dalla pagina dell’ultima release e installarla nello storage locale, ad esempio:

bash

john@localhost:tmp$ wget https://github.com/ps5-payload-dev/sdk/releases/latest/download/ps5-payload-sdk.zip
john@localhost:tmp$ sudo unzip -d /opt ps5-payload-sdk.zip

Supponendo di avere tutti i prerequisiti e di utilizzare un sistema POSIX, la distribuzione binaria dovrebbe funzionare indipendentemente dall’architettura CPU, come x86_64 o aarch64.

Utilizzo

bash

john@localhost:ps5-payload-dev/sdk$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
john@localhost:ps5-payload-dev/sdk$ make -C samples/hello_world
john@localhost:ps5-payload-dev/sdk$ export PS5_HOST=ps5; export PS5_PORT=9021
john@localhost:ps5-payload-dev/sdk$ make -C samples/hello_world test

Compilazione dell’SDK

bash

john@localhost:ps5-payload-dev/sdk$ make DESTDIR=/opt/ps5-payload-sdk install
john@localhost:ps5-payload-dev/sdk$ export PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk
john@localhost:ps5-payload-dev/sdk$ ./libcxx.sh # scarica, compila e installa libcxx

Aggiungere nuove librerie SCE

Se si dispone di file SPRX decrittati con cui si desidera interagire, è possibile creare gli stub come segue:

bash

john@localhost:ps5-payload-dev/sdk$ sudo apt-get install wget python3 python3-pyelftools
john@localhost:ps5-payload-dev/sdk$ ln -s /percorso/al/file/sprx/libSceXYZ.sprx sce_stubs/libSceXYZ.sprx
john@localhost:ps5-payload-dev/sdk$ make -C sce_stubs stubs
john@localhost:ps5-payload-dev/sdk$ make DESTDIR=/opt/ps5-payload-sdk install

Segnalazione dei bug

In caso di problemi con l’SDK, è consigliato aprire una issue su GitHub. Se si intende inviare pull request che modificano più di poche righe di codice, è preferibile aprire prima una issue per discutere la soluzione, così da valutare correttamente le modifiche prima di investire tempo e risorse.

Changelog

  • lld: Consentita la sovrascrittura dello script di linking predefinito.
  • lld: Disabilitata l’opzione -pie quando viene utilizzato --static.
  • samples: Aggiunto un esempio di notifica che utilizza libSceNotification.sprx.
  • rtld: Modificato l’ordine di ricerca delle librerie dinamiche, considerando la directory corrente per ultima.
  • kernel: Aggiunte funzioni come kernel_get_ucred_uid e altre correlate.

Download: PS5 Payload SDK v0.35

Download: Source code PS5 Payload SDK v0.35