Pubblicato un nuovo aggiornamento di Ninfs (precedentemente fuse-3ds), lo strumento sviluppato dal developer Ian Burgwin ci permette di estrarre dati dalle console di gioco Nintendo.
Il programma funziona presentando un filesystem virtuale con i contenuti dei propri giochi, NAND o contenuti della scheda SD, è possibile sfogliare e copiare solo i file di cui si ha bisogno.
L’aggiornamento corregge un problema riguardante tkinter su Windows/GUI, che aveva difficoltà a individuare tcl/tk quando installato in percorsi contenenti caratteri non latini.
Sono state inoltre affrontate le problematiche di caricamento di immagini multiparte su Linux con nandhac, quando il processo di montaggio non era in primo piano.
Per quanto riguarda l’app su MacOS, è stata introdotta la possibilità di caricare fuse-t se macFUSE non viene rilevato, fuse-t è un’alternativa a macFUSE che non richiede un’estensione del kernel, semplificando l’installazione su macOS moderno.
Tuttavia, è consigliato segnalare qualsiasi problema incontrato durante l’uso di fuse-t.
Un’ulteriore correzione su MacOS riguarda l’indicazione del nome del file nel nome del volume, anziché della directory contenente, per i montaggi che eseguono questa operazione.
Tipi di file supportati
- Nintendo 3DS:
- CTR Cart Image (
.3ds
,.cci
). - Contenuti CDN (“cetk”, “tmd”, e contenuti).
- CTR Importable Archive (
.cia
). - Executable Filesystem (
.exefs
,exefs.bin
). - Nintendo 3DS NAND backup (
nand.bin
). - NCCH (
.cxi
,.cfa
,.ncch
,.app
). - Filesystem di sola lettura (
.romfs
,romfs.bin
). - SD Card Contents (“Nintendo 3DS” da SD).
- Contenuto del titolo SD installato (file
*.tmd
e*.app
). - 3DSX Homebrew (
.3dsx
).
- CTR Cart Image (
- Nintendo DS/DSi:
- Backup NAND Nintendo DSi (
nand_dsi.bin
). - Immagine della ROM del Nintendo DS (
.nds
,.srl
).
- Backup NAND Nintendo DSi (
- iQue Player:
- Backup NAND di iQue Player (sola lettura) (
nand.bin
).
- Backup NAND di iQue Player (sola lettura) (
- Nintendo Switch:
- Backup NAND di Nintendo Switch (
rawnand.bin
).
- Backup NAND di Nintendo Switch (
Esempi di utilizzo
- Monta un backup NAND ed esplora CTRNAND, TWLNAND e altri e scrivi di nuovo su di essi senza doverli prima estrarre e decrittografarli.
- Sfoglia il contenuto della scheda SD decrittografata. Esegui il dump di giochi e salvataggi installati o copia i contenuti tra i contenuti SD di due sistemi.
- Estrai i file di un gioco da un CIA, CCI (
.3ds
), NCCH, RomFS, contenuti CDN grezzi, semplicemente montandoli e sfogliando i suoi file. Oppure usa il file virtuale decrittografato e inizia subito a giocare in Citra.
Setup
Per i tipi 3DS, è richiesta la bootROM ARM9. Puoi scaricarlo usando boot9strap, che può essere impostato da 3DS Hacks Guide. Per scaricare la bootROM, tenere premuto + + quando si avvia il 3DS. Viene controllato in ordine di:
--boot9
argomento (se impostato).BOOT9_PATH
variabile d’ambiente (se impostata).%APPDATA%\3ds\boot9.bin
(specifico per Windows).~/Library/Application Support/3ds/boot9.bin
(specifico per macOS).~/.3ds/boot9.bin
~/3ds/boot9.bin
boot9_prot.bin
può essere utilizzato anche in tutte queste posizioni.
~
indica la home directory dell’utente. ~/3ds
significherebbe /Users/username/3ds
su macOS e C:\Users\username\3ds
su Windows.
Il montaggio di CDN, CIA e NCCH potrebbe richiedere SeedDB per il montaggio di contenitori NCCH di giochi più recenti (2015+) che utilizzano seed. SeedDB viene controllato in ordine di:
--seeddb
argomento (se impostato).SEEDDB_PATH
variabile d’ambiente (se impostata).%APPDATA%\3ds\seeddb.bin
(specifico per Windows).~/Library/Application Support/3ds/seeddb.bin
(specifico per macOS).~/.3ds/seeddb.bin
~/3ds/seeddb.bin
È richiesto Python 3.6.1 o successivo.
Windows
È richiesto Windows 8.1 o successivo.
Installazione
Nelle versioni viene fornito un programma di installazione. Include sia ninfs che WinFsp.
Rilascio autonomo
Nelle versioni viene fornito anche un archivio .zip
autonomo. WinFsp deve essere installato separatamente.
Installazione con Python esistente
- Installare l’ultima versione di Python 3. La versione x86-64 viene preferita su Windows a 64 bit.
- È anche possibile utilizzare Python da Microsoft Store. Se viene utilizzato,
python3
deve essere utilizzato al posto dipy -3
. Questa versione ha tuttavia alcune limitazioni, come non essere in grado di eseguire il mount nelle directory.
- È anche possibile utilizzare Python da Microsoft Store. Se viene utilizzato,
- Installare l’ultima versione di WinFsp.
- Installa ninf con
py -3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/archive/2.0.zip
Mac OS
Le versioni di macOS supportate da Apple sono altamente raccomandate. macOS Sierra è la versione più vecchia che dovrebbe funzionare. macFUSE è richiesto.
Al momento non è disponibile alcuna build autonoma.
Installazione con Python esistente
- Installare l’ultima versione di Python 3. Il modo consigliato è Homebrew . Puoi anche usare un programma di installazione da python.org o uno strumento come pyenv.
- Installare l’ultima versione di macFUSE.
- Installare ninf con
python3 -m pip install --upgrade https://github.com/ihaveamac/ninfs/archive/2.0.zip
Linux
Arch Linux
(NOTA: le versioni git non sono aggiornate mentre il processo di compilazione si stabilizza)
ninfs è disponibile in AUR: normal, with gui, git, git con gui
Altre distribuzioni
- Le distribuzioni recenti (ad es. Ubuntu 18.04 e successive) dovrebbero avere Python 3.6.1 o successivo preinstallato o incluso nei suoi repository. In caso contrario, puoi utilizzare una repository aggiuntiva (ad es .PPA di deadsnakes per Ubuntu), compilare dal sorgente o utilizzare uno strumento come pyenv.
- La maggior parte delle distribuzioni dovrebbe avere libfuse abilitato/installato per impostazione predefinita. Utilizzare il gestore di pacchetti se non lo è.
- Installare ninf con
python3 -m pip install --upgrade --user https://github.com/ihaveamac/ninfs/archive/2.0.zip
--user
non è necessario se si utilizza un ambiente virtuale.
- È possibile aggiungere una voce desktop con
python3 -m ninfs --install-desktop-entry
. Se desideri eseguire l’installazione in una posizione diversa da quella predefinita($XDG_DATA_HOME
), puoi aggiungere un altro argomento con un percorso come/usr/local/share
. - Per utilizzare la GUI, tkinter deve essere installato. Sui sistemi basati su Debian/Ubuntu questo è
python3-tk
. Su Fedora questo èpython3-tkinter
.
Utilizzo
Interfaccia grafica utente
È possibile utilizzare una GUI specificando il tipo da utilizzare gui
(ad es. Windows: py -3 -mninfs gui
, *nix: python3 -mninfs gui
). La GUI controlla il montaggio e lo smontaggio.
Riga di comando
Eseguire uno script di montaggio utilizzando mount_<type>
(ad esempio mount_cci game.3ds mountpoint
). Utilizzare -h
per visualizzare gli argomenti per uno script.
Se non funziona, l’altro modo è utilizzare <python-cmd> -mninfs <type>
(ad esempio Windows: py -3 -mninfs cci game.3ds mountpoint
, *nix: python3 -mninfs cci game.3ds mountpoint
).
Gli utenti Windows possono utilizzare una lettera di unità come F:
punto di montaggio oppure utilizzare *
e una lettera di unità verrà scelta automaticamente.
I contenuti dell’unità sviluppatore sono crittografati con chiavi diverse, che possono essere utilizzate --dev
con CCI, CDN, CIA, NANDCTR, NCCH e SD.
Smontaggio
- Windows: Premere Ctrl + C nel prompt dei comandi/nella finestra di PowerShell.
- macOS: Due metodi:
- Fare clic con il tasto destro del mouse sulla montatura e scegliere “Espelli” nome unità “”.
- Eseguire dal terminale:
diskutil unmount /path/to/mount
- Linux: Eseguire dal terminale:
fusermount -u /path/to/mount
Esempi
- Scarica la scheda di gioco 3DS:
mount_cci game.3ds mountpoint
- Contenuti scaricati da CDN:
mount_cdn cdn_directory mountpoint
- Contenuti CDN con una chiave del titolo decifrata specifica:
mount_cdn --dec-key 3E3E6769742E696F2F76416A65423C3C cdn_directory mountpoint
- CIA:
mount_cia game.cia mountpoint
- ExeFS:
mount_exefs exefs.bin mountpoint
- Backup NAND 3DS con
essential.exefs
incorporato:
mount_nandctr nand.bin mountpoint
- Backup 3DS NAND con un file OTP (il contatore viene generato automaticamente):
mount_nandctr --otp otp.bin nand.bin mountpoint
- Backup NAND 3DS con file OTP e CID:
mount_nandctr --otp otp.bin --cid nand_cid.bin nand.bin mountpoint
- Backup NAND 3DS con file OTP e una stringa esadecimale CID:
mount_nandctr --otp otp.bin --cid 7468616E6B7334636865636B696E6721 nand.bin mountpoint
- Backup NAND DSi (il contatore viene generato automaticamente):
mount_nandtwl --console-id 5345445543454D45 nand_dsi.bin mountpoint
- Backup NAND DSi con una stringa esadecimale ID console e una stringa esadecimale CID specificata:
mount_nandtwl --console-id 5345445543454D45 --cid 576879446F657344536945786973743F nand_dsi.bin mountpoint
- Backup NAND DSi con un file ID console e file CID specificato:
mount_nandtwl --console-id ConsoleID.bin --cid CID.bin nand_dsi.bin mountpoint
- Backup NAND di iQue Player:
mount_nandbb nand.bin mountpoint
- Cambia backup NAND:
mount_nandhac --keys prod.keys rawnand.bin mountpoint
- Cambia backup NAND in più parti:
mount_nandhac --keys prod.keys -S rawnand.bin.00 mountpoint
- Cambia il dump della partizione crittografata NAND:
mount_nandhac --keys prod.keys --partition SYSTEM SYSTEM.bin mountpoint
- Contenitore NCCH (.app, .cxi, .cfa, .ncch):
mount_ncch content.cxi mountpoint
- RomFS:
mount_romfs romfs.bin mountpoint
Nintendo 3DS
directory da una scheda SD:
mount_sd --movable movable.sed "/path/to/Nintendo 3DS" mountpoint
Nintendo 3DS
directory da una scheda SD con una stringa esadecimale della chiave SD:
mount_sd --sd-key 504C415900000000504F4B454D4F4E21 "/path/to/Nintendo 3DS" mountpoint
- Immagine ROM Nintendo DS (NDS/SRL,
mount_nds
funziona anche):
mount_srl game.nds mountpoint
- Applicazione homebrew 3DSX:
mount_threedsx boot.3dsx mountpoint
Changelog
- Windows/GUI: Corretto il problema con tkinter che non riusciva a trovare tcl/tk quando installato in percorsi che contengono caratteri non latini.
- nandhac: Corretti i problemi di caricamento di immagini multiparte su Linux quando il processo di montaggio non è in primo piano.
- macOS: Prova a caricare fuse-t se non si riesce a trovare macFUSE (#103).
- fuse-t è un’alternativa a macFUSE che non dipende da un’estensione del kernel, rendendo più facile l’installazione su macOS moderno. Dovrebbe funzionare altrettanto bene, ma per favore archivia i problemi.
- macOS: Visualizza solo il nome del file nel nome del volume e non la directory contenente per i montaggi che eseguono questa operazione.
Download: ninfs v2.0a10 (macOS)
Download: ninfs v2.0a10 (Win32 Installer)
Download: ninfs v2.0a10 (Win32)
Download: Source code ninfs v2.0a10
Fonte: github.com