Site icon Games and Consoles

[PS5] Rilasciato PlayStation 5 Remote JAR Loader v4.0.0

ps5

Losviluppatore hammer83 ha rilasciato un nuovo aggiornamento di PlayStation 5 Remote JAR Loader con una nuova versione 4.0.0.Questo progetto utilizza vulnerabilità scoperte nel livello BD-J (da TheFlow) del firmware PS5 versione 7.61 e precedenti per distribuire un loader in grado di ascoltare i file JAR ed eseguire la loro classe principale. Ciò semplifica la masterizzazione del disco BD-R con il loader una sola volta e quindi l’esecuzione di nuove versioni del codice sperimentale. Questo tool fornisce tutta la configurazione necessaria per creare sia il file system del disco BD-R del loader sia il JAR da inviare alla PS5.

Avvio rapido

  1. Scarica la versione ISO di JAR Loader.
  2. Masterizzalo su un disco BD-R(E) ed eseguilo dalla scheda “Media” della PS5.
  3. Scarica uno dei JAR precompilati oppure compilane uno tuo seguendo i passaggi riportati di seguito.
  4. Inviare il file JAR al JAR Loader tramite NetCat oppure tramite il file JAR stesso, se Java è installato sulla macchina: java -jar [jarfile].jar [ip] [host].

Prerequisiti

Struttura

Il progetto comprende i seguenti componenti:

Configurazione

Le seguenti proprietà in xlet/pom.xml possono essere modificate prima di compilare e masterizzare il JAR Loader sul disco:

Modificare direttamente il POM oppure passare i nuovi valori dalla riga di comando, ad esempio: mvn clean package -Dloader.port=9025 -Dloader.logger.host=192.168.1.100. Per ascoltare i messaggi sulla macchina remota quando il logger remoto è attivato, utilizzare socat udp-recv:[remote.logger.port] stdout.

Anche se il logger remoto non è attivo di default nell’Xlet masterizzato su disco, è possibile modificare la configurazione del server remoto utilizzando uno dei due approcci:

  1. Specificare xploit.logger.hoste facoltativamente xploit.logger.portle proprietà quando si compila il JAR. Queste possono essere impostate in xploit/pom.xml o sulla riga di comando mvn clean package -Dxploit.logger.host=192.168.1.110.
  2. A livello di programmazione nel payload JAR chiamando Status#resetLogger .

Utilizzo

  1. Assicurarsi che la variabile d’ambiente JAVA_HOMEpunti alla radice di JDK 11. Aggiungere ${JAVA_HOME}/binla directory a ${PATH}.
  2. Assicurati anche che MAVEN_HOMEpunti alla radice dell’installazione di Apache Maven. Aggiungi ${MAVEN_HOME}/bindirectory a ${PATH}.
  3. Per creare il payload, seguire questi passaggi:
    • Crea una copia di uno dei payload di esempio copiando l’intera directory e posizionandola nella directory xploit .
    • Nel pom.xmlnuovo payload, imposta artifactIdil genitore su “xploit”, imposta groupIdil modulo su “org.ps5jb.xploit” e imposta artifactIdil modulo sul nome del tuo payload.
    • Crea una classe che implementa l’interfaccia “Runnable” nel pacchetto “org.ps5jb.client.payloads” del nuovo modulo. Il codice all’interno del metodo “run” sarà il punto di ingresso del payload.
    • Tornando a pom.xml, imposta la proprietà xploit.payloadsul nome della classe sopra. Se la classe è stata creata in un sotto-pacchetto, allora è richiesto il nome completo della classe. Altrimenti, specifica semplicemente il nome della classe senza il pacchetto.
  4. Eseguire mvn clean packagedalla radice del progetto. Dovrebbe produrre i seguenti artefatti:
    • La directory assembly/target/assembly-[version]contiene tutti i file che devono essere masterizzati su un disco BD-R.
    • Il file xploit/[payload]/target/[payload]-[version].jarcontiene il codice che può essere inviato ripetutamente alla PS5 una volta che il loader è stato distribuito. È possibile includere il JAR del payload generato nell’assemblaggio del disco per il caricamento dal menu anziché da remoto. Per farlo, attiva il profilo xploitOnDiscdurante la compilazione, ad esempio mvn clean package -P xploitOnDisc.
  5. Masterizzare il BD-R (meglio ancora BD-RE) con il contenuto della directory menzionata nel passaggio 4a. Si noti che la rimasterizzazione del disco del caricatore JAR è necessaria solo quando la sorgente dei moduli xlet o assembly viene modificata o se il payload è stato incluso nell’assembly del disco nel passaggio precedente.
  6. Inserisci il disco nella PS5 e avvia “PS5 JAR Loader” da Media/Disc Player.
  7. Un messaggio sullo schermo dovrebbe informare che il caricatore è in attesa del JAR oppure verrà visualizzato il menu se vengono trovati payload sul disco.
  8. Per l’esecuzione remota, inviare il JAR utilizzando il comando:
    java -jar xploit/[payload]/target/[payload]-[version].jar <ps5 ip address>`

    PS5 dovrebbe informare sullo schermo sullo stato del caricamento e dell’esecuzione.

  9. Una volta completata l’esecuzione remota, il loader attenderà un nuovo JAR. Effettua le modifiche necessarie nel xploitprogetto, ricompila usando mvn packagee riesegui il passaggio 8 per riprovare tutte le volte necessarie.

Appunti

  1. Per utilizzare con IntelliJ, puntare File -> Openil dialogo alla radice del progetto. Verrà eseguita l’importazione di Maven. Quindi seguire i passaggi manuali in IntelliJ Project Structure per regolare le dipendenze in modo che IntelliJ veda le classi BD-J prima delle classi JDK.
  2. Se uno qualsiasi dei POM viene modificato, è necessario farlo Maven -> Reload Projectin IntelliJ per sincronizzare i file di progetto.
  3. Per generare Javadoc, utilizzare mvn verifypiuttosto che mvn package. I Javadoc sono abilitati per i moduli sdk , xlet e xploit e vengono generati nella target/site/apidocsdirectory di ciascun modulo.
  4. Per eseguire unit test, usa mvn test. I test vengono eseguiti automaticamente anche su ogni compilazione. Per saltarli, aggiungi -DskipTestsproprietà sulla riga di comando. Nota che al momento non sono presenti molti unit test, poiché molte funzionalità dipendono da PS5.
  5. Se il xploitJAR non ha dipendenze specifiche per PS5, può essere testato localmente. La parte importante è avere xletstubsxploitJAR tutti nella stessa cartella. Se il payload fa riferimento a GEM, BD-J o Java TV API, i file JAR corrispondenti generati nella directory lib dovrebbero essere presenti nella stessa cartella. Maven build crea automaticamente questa disposizione nella targetdirectory di ogni payload, quindi il comando per eseguire il payload sulla macchina di sviluppo è molto simile a quello che invia il JAR a PS5:
    java -jar xploit/[payload]/target/[payload]-[version].jar

    Quando viene eseguita localmente, la Statusclasse stampa sull’output/errore standard, anziché su Screen.

  6. Attualmente il progetto utilizza due numeri di versione distinti:
    • La xletversione è indipendente e verrà incrementata solo quando sarà necessario masterizzare un nuovo disco con le classi di caricamento JAR aggiornate. Se la PS5 mostra una versione diversa da quella prodotta dal codice di questo repo, non è garantito che i payload siano compatibili, quindi è meglio masterizzare un nuovo disco di caricamento. Non è previsto che questa versione venga incrementata spesso poiché il caricamento è piuttosto stabile. Per incrementare questa versione, modifica il valore della xlet.versionproprietà in pom.xml .
    • Il resto dei moduli usa la versione del POM padre. Questa versione verrà incrementata con la nuova release e riflette il fatto che l’SDK o i payload sono cambiati. Se la versione del loader è rimasta la stessa, queste nuove versioni dei payload possono comunque essere inviate al loader JAR senza dover masterizzare nuovamente il disco. Questa versione può essere incrementata eseguendo mvn versions:set -DnewVersion=[version], quindi aggiornando il progetto IntelliJ Maven come descritto nel punto elenco numero 2.

Struttura del progetto IntelliJ

I file di progetto IntelliJ Maven si trovano in una cartella locale privata di IntelliJ. L’apertura iniziale e i successivi ricaricamenti del progetto Maven importano in modo errato alcune impostazioni. In particolare, i JAR dello stack BD-J vengono completamente ignorati o importati con un ambito errato. Sfortunatamente, a causa di questo fatto, i seguenti passaggi devono essere eseguiti ogni volta che si verifica un ricaricamento del progetto Maven:

Download e fonte

Github

Condividi su :
Pubblicità
Exit mobile version