Home Homebrew Rilasciato PS5 JAR Loader v20231027

[Scena PS5] Rilasciato PS5 JAR Loader v20231027

653
0

Pubblicato un aggiornamento per PS5 JAR Loader, lo strumento sfrutta la catena di exploit BD-JB per permetterci di eseguire file JAR trasmessi tramite il protocollo di rete TCP su console PlayStation 5.

PS5 JAR Loader offre la possibilità di utilizzare una sola volta un disco BD-R con il loader ed eseguire successivamente nuove versioni del codice sperimentale.

La repository fornisce tutte le configurazioni necessarie per creare il filesystem del disco BD-R con il loader e il file JAR da inviare alla console PlayStation 5.

Prerequisiti

  • JDK 11 (PS5 utilizza Java 11 come runtime).
  • Apache Maven.
  • IntelliJ IDEA Community Edition (opzionale, ma consigliato).

Struttura

Il progetto è composto dai seguenti componenti:

  1. Il file pom.xml definisce le proprietà comuni e la configurazione del plugin Maven per tutti i progetti.
  2. Il sotto-progetto assembly crea la directory che deve essere masterizzata su un disco BD-R. Si consiglia di utilizzare il software ImgBurn per farlo. Assicurarsi di utilizzare il filesystem UDF 2.50 e quindi trascinare semplicemente i contenuti della directory assembly/target/assembly-[version] nell’editor di layout del disco.
  3. Il sotto-progetto bdj-tools non deve essere modificato. Si tratta di utility prese da HD Cookbook, adattate per funzionare su JDK 11 e integrate nel processo di creazione del filesystem del disco BD-R.
  4. Il sotto-progetto stubs contiene lo script di build per scaricare i file di classe BD-J da HD Cookbook e organizzarli per l’uso con JDK 11 locale, è anche il luogo in cui vanno dichiarati i file stub specifici per PS5 in modo che possano essere utilizzati nell’Xlet e nel JAR remoto.
  5. Il sotto-progetto xlet contiene il codice dell’Xlet che si avvia quando il disco BD-R viene lanciato sulla PS5. Avvia semplicemente il caricatore JAR (di default sulla porta 9025).
  6. Il sotto-progetto xploit contiene il codice da inviare per l’esecuzione sulla PS5. Il codice può fare riferimento alle classi da xlet, ad esempio la classe Status per visualizzare messaggi a schermo. Il progetto produce un file JAR in grado di inviare se stesso per l’esecuzione.

Configurazione

Le seguenti proprietà in pom.xml possono essere modificate prima di masterizzare il JAR Loader su disco:

  • loader.port – Porta su cui il caricatore JAR ascolterà i dati.
  • loader.resolution.width, loader.resolution.height – Risoluzione dello schermo da impostare in vari file. Non è chiaro come ciò influenzi, quindi se non avete sperimentato abbastanza, è consigliabile non modificarlo.
  • remote.logger.host – Indirizzo IP su cui inviare i messaggi visualizzati sullo schermo. Se vuoto, la registrazione remota non verrà utilizzata. Questo host può anche ricevere dati binari, vedere RemoteLogger#sendBytes.
  • remote.logger.port – Porta su cui il registro remoto invierà i messaggi di stato.
  • remote.logger.timeout – Numero di millisecondi da attendere prima di abbandonare i tentativi di connessione all’host di registrazione remota. Se l’host è irraggiungibile dopo questo timeout al primo tentativo di invio, non verranno effettuati ulteriori tentativi di registrazione remota.

È possibile modificare direttamente il POM o passare i nuovi valori dalla riga di comando, ad esempio: mvn ... -Dloader.port=9025. Per ricevere messaggi remoti, utilizzare socat udp-recv:[remote.logger.port] stdout.

Utilizzo

  1. Assicurarsi che la variabile di ambiente JAVA_HOME punti alla radice di JDK 11. Aggiungere ${JAVA_HOME}/bin alla variabile di ambiente ${PATH}.
  2. Assicurarsi anche che MAVEN_HOME punti alla radice dell’installazione di Apache Maven. Aggiungere ${MAVEN_HOME}/bin alla variabile di ambiente ${PATH}.
  3. Eseguire il comando mvn clean package dalla radice del progetto. Dovrebbe produrre i seguenti elementi:
    • La directory assembly/target/assembly-[version] contenente tutti i file da masterizzare su BD-R.
    • Il file xploit/target/xploit-[version].jar contenente il codice che può essere inviato ripetutamente alla PS5 una volta che il caricatore è stato installato.
  4. Masterizzare il BD-R (meglio se BD-RE), quindi inserirlo nella PS5 e avviarlo.
  5. Un messaggio sullo schermo informerà del caricatore in attesa del JAR.
  6. Inviare il JAR usando il comando: java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -jar xploit/target/xploit-[version].jar <indirizzo IP PS5>. La PS5 informerà sullo schermo lo stato dell’upload e dell’esecuzione.
  7. Una volta completata l’esecuzione, il caricatore sarà pronto per un nuovo JAR. Eseguire le modifiche necessarie nel progetto xploit, ricompilarlo con mvn package e rieseguire il passaggio #6 quante volte necessario.

Note

  • Per utilizzarlo con IntelliJ, basta selezionare il percorso radice del progetto dalla finestra File -> Open.
  • Se uno dei file POM viene modificato, è necessario eseguire Maven -> Reload Project in IntelliJ per sincronizzare i file del progetto. La sincronizzazione del progetto Maven modifica purtroppo il file .idea/compiler.xml per includere percorsi assoluti di sistema. Sostituirli semplicemente nuovamente con il macro $PROJECT_DIR$.

Changelog

  • Masterizzare l’immagine ps5-jar-loader.iso su un BD-R(E).
  • Inserire il disco BD-R(E) nella console PS5 e andare su Media/Lettore disco.
  • Premere Play su “PS5 JAR Loader”.
  • Quando compare il messaggio che mostra l’indirizzo IP su cui il JAR loader è in ascolto, provare ad inviare hello-world-remote.jar utilizzando il seguente comando:
${path_to_java_11}/java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -jar hello-world-remote.jar ${ps5_ip_address}

Nota: Questo non include alcun exploit, ma solo un Proof of Concept per eseguire ripetutamente JAR arbitrari su una PS5.

Download: hello-world-remote.jar

Download: ps5-jar-loader.iso

Download: Source code PS5 JAR Loader v20231027

Fonte: twitter.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.