Home Homebrew Il developer idlesauce aggiorna il payload PS5 Self Decrypter

[Scena PS5] Il developer idlesauce aggiorna il payload PS5 Self Decrypter

99
0

Il developer idlesauce ha recentemente rilasciato un aggiornamento per PS5 Self Decrypter, un payload sviluppato originariamente da SpecterDev per decriptare i file SPRX e SELF della console PlayStation 5.

Questo aggiornamento integra il supporto per l’SDK di John Törnblom e aggiunge offset specifici per i firmware 5.xx della PS5, rendendo il payload compatibile con una gamma più ampia di versioni di sistema.

Inoltre, l’output predefinito ora viene reindirizzato su stdout, sfruttando il loader ELF di John Törnblom per inviare i dati al socket del mittente, pur mantenendo la possibilità di utilizzare il vecchio setup come build separata.

Molti file della PS5, tra cui binari di sistema, librerie e giochi, sono protetti da crittografia. La possibilità di decriptarli rappresenta un passaggio fondamentale per lo studio del funzionamento interno della console attraverso l’ingegneria inversa.

Ciò consente una più profonda comprensione del sistema, l’eventuale personalizzazione tramite modding e l’analisi di sicurezza per individuare vulnerabilità e sviluppare patch o exploit.

Il codice sorgente del payload è disponibile all’interno della repository GitHub del progetto, ma è importante notare che gli utenti dovranno compilarlo da soli e sostituire l’indirizzo IP con quello del proprio PC locale.

Note

  • Sostituire le macro PC_IP e PC_PORT nelle righe 24-25 con l’indirizzo IP e la porta del proprio server TCP.
    • Si consiglia di utilizzare il registro per sapere quanto è avanzato il payload o se si è bloccato.
  • Collegare un’unità USB compatibile alla PS5 con almeno 1 GB di spazio libero prima di eseguire il processo.
  • I file verranno salvati nella directory [radice USB]/PS5/.
  • Dovrebbe supportare le versioni di firmware da 3.xx a 4.xx, ma non è stato testato su tutti i firmware (se si riscontrano problemi, aprire una segnalazione).
  • Attualmente, il payload presume uno stato pre-jailbroken (cioè fuori dalla sandbox). L’aggiunta del codice di jailbreak è un lavoro in corso (Prossimamente).
  • Se si nota che l’attività di registro si è interrotta per più di un minuto, spegnere la console PS5 tramite il pulsante di accensione con tre bip e riavviare la console per eseguire nuovamente il processo.
    • La console potrebbe entrare in stato di panic durante la decrittazione dei file, ma non c’è da preoccuparsi, riavviare la console e ripetere il processo. Il payload riprenderà da dove si era interrotto.
  • Sono benvenuti miglioramenti per rendere il payload più stabile.

Prossimamente

  1. Aggiungere codice per uscire dalla sandbox nel caso in cui l’ambiente non sia già jailbroken.
  2. Migliorare il bloccaggio dell’accesso ai dati condivisi per aumentare la stabilità.
  3. Migliorare e ottimizzare varie funzioni.

Esempio di registro

[+] kernel .data base is ffffffff88e40000, pipe 12->13, rw pair 14->21, pipe addr is ffffa04b61800480
[+] firmware version 0x3000038 ( 3.000.038)
[+] got auth manager: 4
...
[+] dumping /system_ex/common_ex/lib...
[+] decrypting /system_ex/common_ex/lib/libSceJsc.sprx...
  [?] decrypting block info segment for 0
  [?] decrypting block info segment for 1
  [?] decrypting block info segment for 2
  [?] decrypting block info segment for 4
  [?] decrypting block info segment for 9
  [?] decrypting block info segment for 10
  [?] decrypting segment=1, block=1/593
  [?] decrypting segment=1, block=2/593
  [?] decrypting segment=1, block=3/593
  [?] decrypting segment=1, block=4/593

Note per il porting dell’offset

Uno degli obiettivi nel creare questo payload era renderlo relativamente facile da adattare ad altri firmware, anche senza un dump del kernel .text.

Il payload utilizzerà chiamate alle librerie per determinare la versione del sistema e adattarsi in tempo reale, assumendo che il firmware abbia il supporto necessario.

Ci sono un totale di 11 offset, e le note per trovarli sono le seguenti (questi non sono garantiti, ma basati su osservazioni):

  • offset_authmgr_handle: +0x30 byte dal puntatore alla stringa “sdt” (dovrebbe essere anche 0x4 di solito).
  • offset_sbl_mb_mtx: -0x20 byte dal puntatore alla stringa “SblDrvSendSx”.
  • offset_mailbox_base: +0x8 byte dall’offset_sbl_mb_mtx.
  • offset_sbl_sxlock: +0x8 byte dall’offset_mailbox_base.
  • offset_mailbox_flags: -0x8 byte dal puntatore alla stringa “req mtx”.
  • offset_mailbox_meta: -0x18 byte dal puntatore alla stringa “req msg cv”.
  • offset_dmpml4i: -0x8 byte dal puntatore alla stringa “invlgn”.
  • offset_dmpdpi: +0x4 byte dall’offset_dmpml4i.
  • offset_pml4pml4i: -0x1C byte dal puntatore alla stringa “pmap”.
  • offset_datacave_1/offset_datacave_2: Qualsiasi due intervalli di 0x4000 byte che sembrano inutilizzati (probabilmente non è necessario cambiarli).

Queste note dovrebbero essere utili per chiunque desideri adattare il payload a un firmware diverso o effettuare personalizzazioni.

Changelog

  • Risolto il problema della mancanza di un’istruzione “break”.
  • Corretto il percorso nel workflow.
  • Migrato all’SDK di @john-tornblom e aggiunti offset per i firmware 5.xx.
    • Per impostazione predefinita, l’output viene stampato su stdout, poiché il loader ELF di John reindirizza i dati al socket del mittente.
    • Il vecchio setup è ancora disponibile come target di build separato.

Download: Source code PS5-SELF-Decripter

Fonte: github.com

LASCIA UN COMMENTO

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

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.