Skip to content

DarkKirb/3ds-FUSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requirements:
- python3
- fuse 2.9.7 or earlier(!)
- fusepy (pip install fusepy)
- A 3DS running 3ds_cryptserver
- aeskeydb.bin (with eshop 0x3D normal key) in home directory
- seeddb.bin in CWD

Depending on your setup, you might be only able to use these scripts as root user.

Usages:

./ciafuse.py <file.cia> <mountpoint> <3DS IP>
mountpoint:
/
/decrypted.cia - Decrypted CIA file
/tmd           - TMD
/ticket        - Ticket
/0.cxi         - Content 0
/1.cfa         - Content 1 - Might not exist!
.
.
.

./ncchfuse.py <file.cxi | file.cfa> <mountpoint> <3DS IP>
mountpoint:
/
/decrypted.cxi/cfa - Decrypted NCCH
/exefs.bin - ExeFS - only exists on CXIs
/exheader.bin - Extended Header - optional
/plainrgn.bin - Plain Region  - optional
/logorgn.bin - Logo Region - optional
/romfs.bin - RomFS - optional. Should always exist in cfa's

./exefsfuse.py <exefs.bin> <mountpoint>
./romfsfuse.py <romfs.bin> <mountpoint>

EXAMPLES:

Mounting the romfs of the CIA of Mario Kart 7:
./ciafuse.py mk7.cia mount/ 192.168.2.104
./ncchfuse.py mount/0.cxi mount/ 192.168.2.104
./romfsfuse.py mount/romfs.bin mount/

To unmount this, you have to run "umount" three times

-----------------------------------------------------
aeskeydb.bin for local decryption

Thanks to boot9strap, you can dump boot9+boot11+otp by holding start+select+x during boot. You can dump the aeskeys in those roms by running the script "genaeskeys.py". This will append all new keys to aeskeydb.bin. Then you can store it in your home directory.

Requirements:
- 3DS running sighax
- boot9.bin in current directory (The entire one)
- otp.bin in current directory

just run ./genaeskeys.py and your aeskeydb.bin will contain most AES keys. You still have to require eshop 0x3D normal key yourself.