Il developer SciresM ha pubblicato un nuovo importante aggiornamento per hactool ora compatibile con il nuovo firmware 6.2.0 della Switch, lo strumento, ricordiamo, ci permette di decrittografare ed estrarre formati di file comuni per Nintendo Switch.
L’applicazione a riga di comando supporta la maggior parte dei formati della console ibrida Nintendo Switch (NCA, XCI, HFS0, PFS0, RomFS, NPDM, Package1, Package2, INI1 e KIP1).
Le chiavi possono essere elaborati al momento della compilazione o caricati esternamente da file (da riga di comando digitare -k/--keyset
).
I file keyset, sono dei semplici file di testo contenenti una chiave per riga, nel formato key_name = HEXADECIMALKEY
. Il case non dovrebbe avere importanza, né dovrebbe contenere spazi bianchi.
Inoltre, se l’opzione -k/--keyset
non viene impostata, hactool andrà a controllare la presenza di un file keyset in $HOME/.switch/prod.keys
(o $HOME/.switch/dev.keys
se viene impostato -d/--dev
). Se presente, questo file verrà automaticamente caricato.
Formati supportati
- NCA
- XCI
- HFS0
- PFS0
- RomFS
- NPDM
- Package1 (PK11)
- Package2 (PK21)
- INI1
- KIP1
- NAX0
- NSO0
Changelog v1.0.1
- Corruzione della memoria durante l’analisi di alcuni NPDM.
- Modalità AES non valida utilizzata per la decrittografia dei titlekey.
- Validità della sezione BKTR deselezionata prima di accedere ai dati decrittografati.
- Edge case nel layout della sottosezione BKTR causerebbe una ricorsione infinita.
Changelog v1.1.0
I dati chiave possono essere elaborati al momento della compilazione o caricati da un file di chiave esterno. Inoltre, una chiave di avvio sicura + chiave TSEC + coppia di file boot0 può essere inoltrata con un file chiave esterno per ricavare tutte le chiavi che è possibile conoscere in base alle informazioni disponibili.
Nuove caratteristiche
- Aggiunto supporto per NAX0 (Nintendo Aes Xts File (sistema), contenuto della scheda SD).
- Aggiunto il supporto per la derivazione della chiave usando EKS (keyblobs) e la chiave sbk/tsec.
- Aggiunto supporto per i contenuti “NCA2” precedenti alla versione 1.0.0.
Bug corretti
- BKTR non supportava il bucket case non singolo, che influenzava i giochi con enormi patch (Splatoon 2, forse altri).
- Troppi quelli piccoli da contare 🙂
Changelog v1.2.0
Nuove caratteristiche:
- Aggiunto il supporto per la lettura di file package2 come testo normale.
- Aggiunta la conversione NPDM -> JSON.
- KIP1 -> Aggiunta la conversione JSON.
- Keygen ora può essere eseguito senza passare un file BOOT0.
- Aggiunto il supporto per i nuovi file XCI con una partizione del logo.
- Aggiunto il supporto per i file NCA0 precedenti alla versione 1.0.0.
- Aggiunto tramite comando
--uncompressed=
il supporto per decomprimere file NSO0 e KIP1. - Ora è possibile caricare Titlekeys da un file esterno rinominato in
title.keys
, che si trova nella stessa directory diprod.keys
odev.keys
. I Titlekeys devono essere memorizzati nel formatohexadecimal_rights_id = hexadecimal_title_key
. - Vari [WARN] sono stati aggiunti quando viene rilevato un comportamento strano.
Bug corretti:
- Decifratura NAX0 fallita durante la lettura degli offset non allineati.
- Le NCA che utilizzano la crittografia AES-XTS non sono più completamente danneggiate.
- Corretto il supporto per i file NCA2 precedenti alla versione 1.0.0.
- Getopt non si rompe più su arm-linux (grazie @jakibaki!).
- Troppi piccoli bug da contare 🙂
Ultime modifiche:
- “encrypted_header_key” è stato modificato nel keyset in “header_key_source”, per essere coerente con altri nomi di chiavi.
Changelog v1.2.1
- Il supporto dell’estrazione dell’aggiornamento non dovrebbe più causare errori.
- L’output NPDM JSON è stato convertito nel nuovo formato.
- I dati chiave 6.x non saranno più chiamati “Unknown”.
Changelog v1.2.2
- Aggiunto supporto per la derivazione della nuova chiave 6.2.0+ utilizzando
tsec_root_key
emaster_kek_source _ ##
. - I dai delle chiavi 6.2.0 non saranno più chiamati “Unknown”.
- Corretto un bug che coinvolgeva la violazione degli argomenti alle routine
aes mbed_tls
.
Download: hactool v1.2.2
Download: Source code hactool v1.2.2