Home Homebrew SpecterDev rilascia un payload per la decrittazione dei file PS5 su...

[Scena PS5] SpecterDev rilascia un payload per la decrittazione dei file PS5 su tutti i Firmware hackerabili

569
0

La community è in fermento dopo l’ultimo annuncio da parte del developer SpecterDev, un nuovo payload che permetterà di decriptare i file SPRX/SELF su tutte le versioni del firmware PS5 che possono essere hackerate.

Finora, la decrittazione di questi file era possibile solo sul firmware 4.03, grazie all’uso di Prosper0 Debugger di Sleirsgoevy.

Tuttavia, il rilascio del payload da parte di SpecterDev ora rende possibile questa operazione su tutte le versioni del firmware che sono state sottoposte all’hacking.

Ma cosa sono esattamente questi file SPRX/SELF, e perché dovrebbero interessare agli utenti? La risposta sta nella crittografia.

Molti file sulla PS5, compresi i binari di sistema, le librerie necessarie per le applicazioni e, naturalmente, i giochi stessi, sono protetti da crittografia.

Decrittare questi file rappresenta il primo passo verso l’ingegneria inversa, un processo utilizzato per una serie di scopi, tra cui il modding dei giochi, la ricerca di vulnerabilità nel sistema e la creazione di patch per scopi di hacking.

L’annuncio del rilascio del payload è stato preceduto da un misterioso tweet di SpecterDev, che aveva fatto intendere che avesse in serbo qualcosa di grande attraverso un nuovo attacco basato solo sui dati della PSP (Platform Secure Processor).

L’uso del payload richiede una serie di passaggi tecnici e l’uso di una chiavetta USB. Inoltre, il processo potrebbe richiedere del tempo e potrebbe incontrare alcune difficoltà, incluso il possibile blocco della console.

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.

Download: Source code PS5-SELF-Decripter

Fonte: wololo.net

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.