Il developer Soar Qin ha pubblicato una versione modificata di PSVIMGTools, la serie di strumenti sviluppati dal developer Yifan Lu ci permettono di decifrare i file dei backup effettuati attraverso il Content Manager (conosciuto come CMA).
Il Content Manager su Playstation Vita e Playstation TV ci permette di eseguire il backup e il ripristino dei giochi, dei salvataggi e delle impostazioni di sistema, e proprio i backup dei giochi (criptati ma non firmati) fanno uso di una chiave impostata dal processore F00D.
Un vero e proprio lavoro di squadra, raggiunto in primis dal developer xyz che con l’aiuto di Proxima ha messo a punto un hack capace di estrapolare la chiave segreta memorizzate come self F00D, che vengono convalidate e decifrate proprio come self ARM.
psvimgtools
Questo è un insieme di strumenti che consentono di decriptare, estrarre e ricostruire le immagini di backup da CMA su Playstation Vita. Per utilizzarlo è necessaria la chiave di backup AID legata all’account PSN.
psvimg-extract
Questa applicazione viene usata per estrarre i file .psvimg
. I file estratti includono una directory per ciascun set di backup (ad esempio: ur0:appmeta
, ux0:iconlayout.ini
, e ur0:tmp/registry
in tre gruppi separati).
Ogni set di backup può contenere più o meno file e directory. Un file speciale VITA_PATH.TXT
viene creato per ogni set e dove viene memorizzato il percorso originale prima dell’estrazione (questo viene poi utilizzato per ricostruire il backup).
Un set può essere solo un singolo file (ad esempio ux0:iconlayout.ini
). In tal caso, viene creato il file VITA_DATA.BIN
per ospitare il contenuto del file.
psvmd-decrypt
Questa applicazione viene usata per decifrare e decomprime i file .psvmd
. Il contenuto di cui sono definite in psvimg.h
. Questo file contiene informazioni quali la versione del firmware del sistema che ha creato il backup e il PSID del sistema. L’estrazione di questo file non è necessario per la ricostruzione del backup ed è previsto per scopi di reverse engineering/debug.
psvimg-create
Questa applicazione ricostruisce i backup e crea i file associati .psvmd
e .psvimg
. Se si possiede un file _decrypted_ .psvmd
, si può passare con -m
e lo strumento andrà a riutilizzare il maggior numero di campi possibili (eccezione: campi di dimensioni).
Non verranno eseguiti controlli sulla validità. Se non si dispone di file .psvmd
decriptati, è necessario utilizzare l’opzione -n
e specificare il nome del backup.
Si consiglia di utilizzare lo stesso nome (il nome del file senza l’estensione .psvimg
) quando si ricostruisce perché CMA non verifica la presenza di un nome valido. Ad esempio, se si sta ricostruendo license.psvimg
, dovrete specificare -n license
.
La directory di input del pacchetto dovrebbe seguire lo stesso formato in uscita come psvimg-extract
. I mezzi per separare la directory per ogni set di backup (ci può essere un solo set, dove la vostra directory di input conterrà una sottodirectory), ciascuna con un file VITA_PATH.TXT
specificando il percorso su Playstation Vita e, facoltativamente, un file VITA_DATA.BIN
se il set è un file.
Si noti che CMA non controlla i percorsi dei set di backup. Cercando di aggiungere un set di backup con un percorso personalizzato può provocare un errore.
psvimg-keyfind
Questa è una applicazione studiata per trovare la chiave backup attraverso la tecnica del Brute-force, è necessario generare un file valido partials.bin
utilizzando l’applicazione homebrew dump_partials
che gira su exploit HENkaku.
Volendo è possibile generare il file partial.bin
anche per altre persone e se si conosce il loro AID. Il file partials.bin
non contiene alcuna informazione sulla console, ma deriva dal proprio PSN AID. Il file AID contiene 16 caratteri esadecimali nel percorso di backup CMA.
Ad esempio, se si vuole decifrare il gioco PS Vita/PGAME/xxxxxxxxxxxxxxxx/NPJH00053/game/game.psvimg
allora il suo AID sarà xxxxxxxxxxxxxxxx
.
L’opzione -n
specifica il numero di thread in esecuzione. Su Linux, ogni thread tenta di avviarsi su di un processore separato. Su OSX/Windows, spetta allo scheduler per rendere tali decisioni.
Non si dovrebbe specificare un numero troppo alto, come in esecuzione di più thread su una singola CPU si tradurrà in rendimenti decrescenti. Una buona regola è quella di specificare il numero di core della CPU sul sistema.
Changelog
- Aggiunto il supporto di compilazione nativo per win32.
- Abilitato l’uso di miniz per sostituire zlib.
- Uso limitato di libgcrypt e utilizzo di un’implementazione incorporata di aesni.
- Aggiunta opzione -A per utilizzare direttamente l’ID account.
Download: psvimgtools v0.1-mod (win32)
Download: psvimgtools v0.1-mod (win64)
Download: Source code psvimgtools v0.1-mod
Fonte: github.com