Home Homebrew Rilasciato PlayStation 5 Remote JAR Loader

[Scena PS5] Rilasciato PlayStation 5 Remote JAR Loader

508
0

Anche se di poco interesse ci sono nuovi sviluppi sul loader di file JAR della console PlayStation 5, ad attivarsi oggi è il developer hammer-83 che ha sviluppato il progetto PlayStation 5 Remote JAR Loader utilizzato come base per lo sviluppo della ISO PS5 JAR Loader.

Questo progetto utilizza le vulnerabilità scoperte nel livello BD-J del firmware 4.51 e versioni precedenti della console PlayStation 5 per distribuire un caricatore in grado di ascoltare i file JAR ed eseguire la loro classe principale.

Ciò semplifica la masterizzazione del disco BD-R con il caricatore solo una volta e quindi l’esecuzione di nuove versioni del codice sperimentale.

Lo sviluppatore ha dettagliato tutte le impostazioni necessarie per creare sia il filesystem del disco BD-R del caricatore che il file JAR da inviare alla console PlayStation 5.

Prerequisiti

  • JDK 11 (la console PS5 utilizza il runtime Java 11).
  • Apache Maven.
  • IntelliJ IDEA Community Edition (facoltativo, ma consigliato).

Struttura

Il progetto comprende le seguenti componenti:

  • Root pom.xml definisce le proprietà comuni e la configurazione del plugin Maven per tutti i progetti.
  • il sottoprogetto assembly crea la directory che deve essere masterizzata su un disco BD-R. Raccomando il software ImgBurn per farlo. Assicurati di utilizzare il filesystem UDF 2.50, quindi trascinare semplicemente il contenuto della directory assembly/target/assembly-[version] nell’editor del layout del disco.
  • Il sottoprogetto bdj-tools non ha bisogno di essere toccato. Queste sono le utility di HD Cookbook, adattate per funzionare su JDK 11 e integrate nel processo di compilazione del filesystem del disco BD-R.
  • Il sottoprogetto stub contiene lo script di compilazione per scaricare i file di classe BD-J da HD Cookbook e organizzarli per l’utilizzo con JDK 11 locale. È anche un luogo in cui i file stub specifici per PS5 devono essere dichiarati in modo che possano essere utilizzati nell’Xlet e JAR remoto.
  • Il sottoprogetto xlet contiene il codice dell’Xlet che si avvia quando il disco BD-R viene avviato su PS5. Avvia semplicemente il caricatore JAR (per impostazione predefinita sulla porta 9025).
  • L’oggetto xploit contiene il codice da inviare per l’esecuzione su PS5. Il codice può fare riferimento a classi da xlet, come la classe Status per l’output sullo schermo. Il progetto produce un JAR che è in grado di autoinviarsi per l’esecuzione.

Configurazione

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

  • loader.port – Porta su cui il caricatore JAR ascolterà i dati.
  • loader.resolution.widthloader.resolution.height – Risoluzione dello schermo da impostare in vari file. Non sono sicuro di come questo influisca su qualcosa, non l’ho sperimentato abbastanza.
  • remote.logger.host – Indirizzo IP dove far risuonare i messaggi mostrati 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 logger 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 remoto. Se l’host è inattivo dopo questo timeout al primo tentativo di invio, non verranno eseguiti ulteriori tentativi di registrazione remota.

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

Utilizzo

  1. Assicurati che la variabile di ambiente JAVA_HOME punti alla root di JDK 11. Aggiungere la directory ${JAVA_HOME}/bin a ${PATH}.
  2. Assicurati inoltre che MAVEN_HOME punti alla root dell’installazione di Apache Maven. Aggiungere la directory ${MAVEN_HOME}/bin a ${PATH}.
  3. Esegui mvn package dalla root del progetto. Dovrebbe produrre i seguenti artefatti:
    • La directory assembly/target/assembly-[version] contiene tutti i file che devono essere masterizzati sul BD-R.
    • Il file xploit/target/xploit-[version].jar contiene il codice che può essere inviato ripetutamente alla PS5 una volta distribuito il caricatore.
  4. IMPORTANTE: Maven-compiler-plugin presenta un bug che causa un NPE se non viene corretto. L’esecuzione del passaggio #3 probabilmente fallirà alla prima esecuzione. Per risolvere il problema, sostituire il plugin nella repository Maven locale con la versione con patch che si trova in lib. Normalmente la sostituzione va a ${HOME}/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/3.10.1.
  5. Masterizzare il supporto BD-R (meglio ancora se BD-RE), quindi inseriscirlo nella console PS5 e avviarlo.
  6. Un messaggio sullo schermo dovrebbe informare che il caricatore è in attesa del file JAR.
  7. Inviare il file JAR utilizzando il comando: java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -jar xploit/target/xploit-[version].jar <indirizzo ip ps5> [<porta ps5]. La console PS5 dovrebbe informare a schermo sullo stato del caricamento e dell’esecuzione.
  8. Una volta completata l’esecuzione, il caricatore attenderà un nuovo file JAR. Apportare le modifiche necessarie nel progetto xploit, ricompilare utilizzando mvn package e rieseguire il passaggio #7 per riprovare.

Note

  1. Per utilizzare con IntelliJ, è sufficiente puntare la finestra di dialogo File -> Open alla root del progetto.
  2. Se uno qualsiasi dei POM viene modificato, è necessario eseguire Maven -> Reload Project in IntelliJ per sincronizzare i file di progetto. La sincronizzazione del progetto Maven purtroppo modifica .idea/compiler.xml per contenere percorsi di sistema assoluti. Sostituiscili semplicemente con la macro $PROJECT_DIR$ di nuovo.
  3. Il progetto deve essere compilato una volta dalla riga di comando prima di tentare l’apertura in IntelliJ. In questo modo vengono scaricati i JAR bdjstack.
  4. Il plugin Javadoc è integrato nella build, ma è legato alla fase di verifica in modo che la fase package non venga rallentata. Per generare il Javadoc, utilizzare mvn verify invece di mvn package.
  5. Se preferisci che Maven non esegua nuovamente la scansione di tutti i sottoprogetti per le modifiche (sono pochi secondi al massimo), utilizzare mvn install per inserire tutti gli artefatti nella repository maven locale. Quindi eseguire tutti i comandi del mvn package dalla directory xploit anziché dalla root del progetto.

Download: Source code PlayStation 5 Remote JAR Loader

Fonte: psxhax.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.