Il developer Pablo Curiel ha pubblicato un nuovo aggiornamento per il tool wad2bin, lo strumento ci permette di convertire i pacchetti Wii WAD installabili in pacchetti WAD di backup (file *.bin
) utilizzando i keydata specifici della console.
Questi file possono essere archiviati su di una scheda SD e utilizzati per avviare canali tramite il menu di sistema 4.0+ o utilizzati con giochi che salvano o leggono i dati in questo formato.
Utilizzo
wad2bin <keys file> <device.cert> <input WAD> <output dir> [parent title ID]
I percorsi non devono superare i 1023 caratteri. I percorsi relativi sono supportati.
L'albero di directory richiesto per i file *.bin verrà creato nella directory di output.
È possibile impostare la directory principale della scheda SD come directory di output.
Il TitleID principale è richiesto solo se l'ingresso WAD è un DLC.
È prevista una stringa esadecimale lunga 16 caratteri.
Linee guida
- Per eseguire la conversione sono necessari dati specifici della console. Scaricalo dalla console di destinazione utilizzando xyzzy-mod.
- Il programma prevede due diversi file con dati specifici della console: un file di testo con keydata (controllare
keys.txt.template
per il formato effettivo) edevice.cert
.
- Il programma prevede due diversi file con dati specifici della console: un file di testo con keydata (controllare
- Per poter funzionare, sia il ticket sia il TMD per ciascun pacchetto WAD convertito devono essere installati sulla console Wii di destinazione.
- Per questo motivo, il programma genera un pacchetto WAD falso nella directory di output fornita. Può essere utilizzato con i normali gestori WAD per installare sia ticket che TMD, se necessario.
- Se il ticket WAD non è stato emesso per la console di destinazione o se il file WAD non è legittimo (ad esempio WAD homebrew), l’IOS utilizzato dal System Menu deve essere patchato per abilitare il bug della firma su di esso.
- Se viene fornito un DLC WAD, non importa se si tratta di un WAD incompleto con contenuti mancanti, un WAD con un TMD manomesso che fa riferimento solo ai contenuti impacchettati o un WAD completo con tutti i contenuti: tutti i casi sono supportati da wad2bin. Non è necessario fornire alcun indice di contenuto.
Differenze tra i file content.bin
e i file <index>.bin
- I file
content.bin
vengono utilizzati per archiviare i dati dai titoli00010001
(canali scaricabili) e00010004
(canali basati su disco) e vengono salvati insd:/private/wii/title/<ascii_lower_tid>/content.bin
. Mentre i file<index>.bin
vengono utilizzati per archiviare dati da titoli00010005
(DLC) e vengono salvati insd:/private/wii/data/<ascii_lower_tid>/<index>.bin
– dove<index>
rappresenta un contenuto specifico indice dal suo TMD (000-511). - Entrambi i file
content.bin
e<index>.bin
sono pacchetti WAD di backup con un blocco di intestazione “Bk”, un blocco di dati TMD e contenuti crittografati che utilizzano AES-128-CBC con la chiave PRNG specifica della console e l’indice di contenuto come IV (seguito da 14 zeri). - Tuttavia, i file
content.bin
contengono due blocchi iniziali prima dell’intestazione “Bk” che sono entrambi crittografati utilizzando la chiave SD e SD IV (che non sono specifici della console):- Un’intestazione di informazioni sul titolo lunga 0x640 byte, che contiene dati come il TitleID e una copia dell’intestazione IMET dai canali
opening.bnr
(00000000.app
). - Una copia della voce del file
/meta/icon.bin
dall’archivio U8opening.bnr
, con dimensioni variabili.
- Un’intestazione di informazioni sul titolo lunga 0x640 byte, che contiene dati come il TitleID e una copia dell’intestazione IMET dai canali
- I file
content.bin
contengono anche un’area del certificato finale posizionata dopo il contenuto crittografato, che contiene:- Una firma ECSDA calcolata sull’intera area del pacchetto WAD di backup (utilizzando la chiave privata ECC specifica della console).
- Una copia del certificato del dispositivo ECC-B233 specifico della console (noto anche come certificato “NG”).
- Un certificato ECC-B233 rilasciato dal titolo (noto anche come certificato “AP”), firmato utilizzando la chiave privata ECC specifica della console. La sua chiave pubblica ECC è un segreto condiviso ECDH generato con una chiave privata ECC personalizzata. Il titolo dell’emittente è sempre il System Menu (00000001-00000002).
- D’altra parte, mentre i file
<index>.bin
non includono nessuno dei blocchi iniziali e finali dei filecontent.bin
, possono solo contenere un singolo contenuto crittografato alla volta, il cui indice viene utilizzato come parte di il nome file espresso nella notazione base 10 (es.000.bin
).
Dipendenze
- ninty-233 (concesso in licenza in base a GPLv3 o successivo) viene utilizzato per la generazione di dati ECDH e la firma/verifica ECSDA.
- mbedtls (concesso in licenza con Apache 2.0) viene utilizzato per il calcolo dell’hash e le operazioni di crittografia AES-CBC.
- Analisi dei keydata basata sul codice di hactool (concesso in licenza ISC).
Changelog v0.6
- Aggiunto un elenco hardcoded con TitleID da DLC che possono essere convertiti nel formato
<index>.bin
. Qualsiasi altro DLC restituirà un errore. Grazie a ciò, non è più necessario inserire un TitleID principale. - Corretto il problema con i pacchetti WAD con dati di contenuto maggiori di U32_MAX (0xFFFFFFFF).
Changelog v0.5
- Implementata generazione di pacchetti WAD fasulli installabili (intestazione + catena di certificati + ticket + TMD), salvati nella directory di output fornita utilizzando la convenzione di denominazione
<title_id>_bogus.wad
. - Questi pacchetti WAD fasulli possono essere utilizzati per installare sia ticket che TMD, se necessario, usando i normali gestori WAD. Errori come -1022 possono essere tranquillamente ignorati (ad es. I dati di contenuto non sono disponibili in questi WAD).
Download: wad2bin v0.6
Download: Source code wad2bin v0.6
Fonte: wiidatabase.de