Extract and Decrypt games, NAND backups, and SD contents with ninfs

Discussion in '3DS - Tutorials' started by ihaveamac, Mar 30, 2018.

  1. ihaveamac

    ihaveamac GBAtemp Guru

    Apr 20, 2015
    United States
    Several releases have been put up since my last post here, so here is a summary of them. Some of the notable changes are a rename to ninfs, a standalone release for macOS, support for Nintendo Switch backups, and more.


    fuse-3ds v1.3
    • Added option to skip a specific update
    • Added option to prevent checking online for updates
    • Fix detection of tkinter on Linux
    fuse-3ds v1.3.1
    • New custom icon
    • First release of standalone macOS Application Bundle
    • Minor GUI text updates
    ninfs v1.4
    • New feature to mount Nintendo Switch NAND images
      • This requires BIS keys, dumped with Lockpick_RCM or biskeydump.
    • New project name: ninfs
    • Fix incorrect developer common key 0
    • Many other internal changes
    ninfs v1.5
    • Support split Nintendo Switch NAND backup files
      • Each part is expected to end in two digits (e.g. rawnand.bin.00, rawnand.bin.01, ...). Any part can be selected, the program will search for all parts starting with 00.
      • The command line argument -S or --split-files is used for a split backup.
      • The GUI will attempt to automatically detect this based on the filename.
    • GUI: Automatically detect Nintendo DSi NAND backups
    • GUI: Fix oversight breaking automatic detection of Nintendo 3DS NAND backups
    • ExeFS: Always show code-decompressed.bin, even if .code is not compressed
    ninfs v1.6
    • CDN: Support using a tmd file to mount - #36
      • The GUI now expects a tmd file by default instead of a directory.
    • SD: Support manual SD key input
      • --sd-key reads the key as a hexstring. It cannot be used at the same time as --movable.
      • The GUI currently does not accept the key as a hexstring, only a movable.sed file.
    • CMDLINE: Support --boot9 for loading the ARM9 bootROM from any path
    • SD: Workaround write corruption bug
    • NANDHAC: Performance improvements to AES-XTSN crypto operations by @luigoalma
    • CCI: Remove useless SeedDB option
    • Stability or something, I guess.
  2. TurdPooCharger

    TurdPooCharger Meh

    Jan 1, 2018
    United States
    Edit - Nevermind. Ignore this post. Issue's resolved with some needed patience.

    After several minutes, the program finished extracting my files. :lol:


    Original Post,

    @ihaveamac, I'm using the latest ninfs v1.6.1, installed WinFsp 2019.1, and updated to Python 3.7.3 on my Windows 8.1 64-bit computer. Also have the boot9.bin and June release seeddb.bin at C:\Users\<my user's profile>\AppData\Roaming\3ds.

    When trying to use the "nand.bin" option on my nand.bin (1.82 GB) dumped from [S:] SYSNAND VIRTUAL (also tried it with otpotp.bin extracted from essential.exefs), the specified empty New folder doesn't list any of the files.

    I have no issues mounting CIAs or other image types. No difference when all my anti-virus programs are disabled in remedying this.

    The problem could be something else on my main computer; no way to test ninfs on my spare 64-bit netbook with Linux Mint and Windows 7 (it's kaputt / currently saving money for a replacement mobo).

    Empty folder
    Last edited by TurdPooCharger, Jun 9, 2019
  3. PhotoGuyBob

    PhotoGuyBob Newbie

    United States
    IHaveAMac, thanks for all your work on this. It's so rare to find tools like this that run on MacOS! I wonder if you could help me with a bug. I have my boot9 and SeedDB dumped, and I am attempting to mount CIA files from a .3DS file.. When I do so, it fails with the following error:

    File "ninfs/pyctr/types/tmd.py", line 222, in load
    KeyError: 0

    It's the InvalidSignatureTypeError and it also fails to handle it.

    Traceback (most recent call last):
    File "ninfs/_pyi_main.py", line 31, in <module>
    File "ninfs/main.py", line 80, in mount
    File "ninfs/mount/cia.py", line 239, in main
    File "ninfs/mount/cia.py", line 68, in __init__
    File "ninfs/pyctr/types/tmd.py", line 224, in load
    pyctr.types.tmd.InvalidSignatureTypeError: 0x00000000

    I have Fuse installed.
    I thought perhaps I was using the app wrong, and designated the type to mount as .3DS, but that seems to just lock up ninfs and Finder on me..
    OSX Version: 10.14.5
    PYthon Version: 2.7.10
    Last edited by PhotoGuyBob, Jul 12, 2019 at 12:52 AM
  4. ihaveamac

    ihaveamac GBAtemp Guru

    Apr 20, 2015
    United States
    What exactly do you mean by "I am attempting to mount CIA files from a .3DS file."? It looks like you're using the CIA mount, but you're not choosing a CIA file. Make sure you choose 'CTR Cart Image (".3ds", ".cci")'.
  5. PhotoGuyBob

    PhotoGuyBob Newbie

    United States
    Thanks for the quick reply. Yeah, I think I may have been using the app incorrectly at first. Mounting it as a CTR does seem to be locking up the whole OS, though.. Gradually crashing the whole computer. Hopefully I can tinker a bit later today.