Il developer e hacker Yifan Lu ha rilasciato alcuni strumenti per 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.
Si è trattato di un lavoro di squadra, un primo passo raggiunto dal developer xyz che con l’aiuto di Proxima hanno messo a punto un hack capace di estrapolare la chiave segreta memorizzate come self F00D, che vengono convalidate e decifrate proprio come self ARM.
Il risultato è che con questi strumenti, è possibile modificare i backup per qualsiasi software di sistema, compreso il più recente firmware 3.63 e probabilmente tutti i futuri firmware. Questo non significa che è possibile eseguire homebrew, ma consentono di attuare anche alcuni trucchi come disabilitare la whitelist su Playstation TV o Cambiare i tasti e .
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’ sono tre gruppi separati).
Ogni set di backup possono 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.
[stextbox id=”info”]Nota: La versione Linux richiede l’installazione della libreria libgcrypt
[/stextbox]
Download: PSVIMGTools v0.1