用于任天堂控制台文件的fuse文件系统python脚本
ninfs的Python项目详细描述
九个
Ninfs(以前叫Fuse-3DS)是一个从任天堂游戏机中提取数据的Fuse程序。它的工作原理是提供一个包含游戏、NAND或SD卡内容的虚拟文件系统,您可以浏览和复制所需的文件。
支持Windows、MacOS和Linux。
支持的类型
- 任天堂3DS:
- CTR购物车图像(".3ds"、".cci")
- CDN内容("CETK"、"TMD"和内容)
- CTR可导入存档(".cia")
- 可执行文件系统(".exefs","exefs.bin")
- 任天堂3DS NAND备份("nand.bin")
- NCCH(".cxi"、".cfa"、".ncch"、".app")
- 只读文件系统(".romfs","romfs.bin")
- SD卡内容("任天堂3DS"来自SD)
- 3dsx自制(".3dsx")
- 标题目录(NAND或SD中的"标题")
- 任天堂DS/DSI
- 任天堂DSI NAND备份("nand-dsi.bin")
- 任天堂DS ROM图像(".nds"、".srl")
- 任天堂交换机
- 任天堂交换机和备份("rawnand.bin")
示例使用
- 装载NAND备份并浏览ctrnand、twlnand和其他备份,然后向它们回写,而无需先提取和解密它们。
- 浏览解密的SD卡内容。转储已安装的游戏并保存,或在两个系统的SD内容之间复制内容。
- 从CIA、CCI(".3DS")、NCCH、ROMFS、原始CDN内容中提取游戏文件,只需安装并浏览其文件。或者使用虚拟解密文件,立即在citra中开始游戏。
设置
对于3DS类型,需要ARM9引导ROM。您可以使用boot9strap转储它,可以通过3ds hacks guide设置。检查顺序如下:
--boot9
参数(如果已设置)boot9路径
环境变量(如果已设置)%appdata%\3ds\boot9.bin
(特定于Windows)~/library/application support/3ds/boot9.bin(特定于MacOS)
~/.3ds/boot9.bin
~/3ds/boot9.bin
boot9_prot.bin
也可以在所有这些位置使用。
"~
"表示用户的主目录。~/3ds
"在macos上意味着/users/username/3ds
,在windows上意味着c:\ users\username\3ds
。
cdn、cia和ncch安装可能需要seeddb用于安装使用种子的较新游戏(2015年以上)的ncch容器。
按以下顺序检查seeddb:
--seeddb
参数(如果已设置)seedb_path
环境变量(如果已设置)%appdata%\3ds\seeddb.bin
(特定于Windows)~/library/application support/3ds/seeddb.bin(特定于MacOS)
~/.3ds/seeddb.bin
~/3ds/seeddb.bin
python 3.6.1+和pycryptomex是必需的。图形用户界面需要appjar。
窗口
需要Windows 7或更高版本。
带有gui的独立可执行文件可供使用。您可以从github获取一个可执行文件以供下载,网址是github或GBATemp下载中心"将出现一个窗口,允许您轻松选择安装选项。
不必安装python,但仍然需要使用winfsp。
使用现有的python安装
- 安装最新版本的python 3。在64位Windows上,首选x86-64版本。
- 或者,使用Microsoft应用商店中的python 3.7python 3.7。注意,必须使用
python
或python3
而不是py-3
- 安装最新版本的winfsp
- 使用
py-3-m pip install安装ninfs——升级https://github.com/ihaveamac/ninfs/archive/master.zip
。
- 有了gui支持:
py-3-m pip安装——升级https://github.com/ihaveamac/ninfs/archive/master.zip egg=ninfs[gui]
Mac操作系统
- 或者,使用Microsoft应用商店中的python 3.7python 3.7。注意,必须使用
python
或python3
而不是py-3
py-3-m pip install安装ninfs——升级https://github.com/ihaveamac/ninfs/archive/master.zip
。
- 有了gui支持:
py-3-m pip安装——升级https://github.com/ihaveamac/ninfs/archive/master.zip egg=ninfs[gui]
带有gui的独立应用程序包可供使用。需要OS X 10.9.5 Mavericks或更高版本。您可以从github下载dmg。
不必安装python,但仍然需要为macos安装fuse。
使用现有的python安装
强烈推荐苹果支持的MacOS版本。Mac OS X雪豹是最低版本,应该可以工作。
- 安装最新版本的python 3。推荐的方法是自制。您也可以使用python.org中的安装程序或pyenv中的类似工具。
- 为MacOS安装最新版本的fuse
- 使用
python3-m pip install安装ninfs——升级https://github.com/ihaveamac/ninfs/archive/master.zip
。- 有了gui支持:
python3-m pip install——升级https://github.com/ihaveamac/ninfs/archive/master.zip\egg=ninfs[gui]
- 有了gui支持:
Linux
- arch linux:ninfs在aur中可用:正常,使用gui,git,带gui的git
- 最近的发行版应该预先安装了Python3.6.1或更高版本,或者包含在其存储库中。如果没有,您可以使用一个额外的存储库(例如,对于ubuntu,死蛇的ppa,可以使用一个额外的存储库,或者使用一个类似于的工具env/pyenv" rel="nofollow">pyenv
- 默认情况下,大多数发行版都应该启用/安装fuse。如果不是,请使用包管理器。
- 使用
python3-m pip install--upgrade--user https://github.com/ihaveamac/ninfs/archive/master.zip安装ninfs。
--如果您使用的是虚拟环境,则不需要用户
。- 有了gui支持:
python3-m pip install--upgrade--user https://github.com/ihaveamac/ninfs/archive/master.zip\egg=ninfs[gui]
。理>
- 您可以使用
python3-m ninfs--install desktop entry添加桌面条目。如果要安装到默认位置以外的位置(
$xdg_data_home
),可以添加另一个参数,路径类似于/usr/local/share
用法
图形用户界面
如果ninfs是使用gui支持安装的,则可以使用gui,方法是指定类型为gui
(例如,windows:py-3-mninfs gui
,*nix:python3-mninfs gui
)。gui控制安装和卸载。
命令行
使用"mount<;type>;
"(例如mount-cci game.3ds mountpoint
)运行装载脚本。使用-h
查看脚本的参数。
如果不起作用,另一种方法是使用<;python cmd&g t;-mninfs<;type>;
(例如,windows:py-3-mninfs cci game.3ds mountpoint
,*nix:python3-mninfs cci game.3ds mountpoint
)。
Windows用户可以使用像f:
这样的驱动器号作为安装点,或者使用*
驱动器号将被自动选择。
卸载
- windows:在命令提示符/powershell窗口中按ctrl+c。
- macos:两种方法:
- 右键单击安装并选择"弹出"驱动器名""。
- 从终端运行:
diskutil unmount/path/to/mount
- Linux:从终端运行:
fusermount-u/path/to/mount
示例
- 3DS游戏卡转储:
mount_cci game.3ds mountpoint
- 从cdn下载的内容:
挂载cdn cdn目录挂载点
- 具有特定解密titlekey的cdn内容:
安装CDN--dec key 3e3e376974e696f2f76416a65423cCDN U目录安装点
- 中情局:
mount_cia game.cia挂载点
- 前任:
装入exefs exefs.bin装入点
- 带有
essential.exefs
嵌入的3ds NAND备份:
安装nandctr nand.bin安装点
- 使用OTP文件进行3DS NAND备份(自动生成计数器):
安装nandctr--otp otp.bin nand.bin安装点
- 使用otp和cid文件进行3ds nand备份:
安装nandctr--otp otp.bin--cid nand&cid.bin nand.bin安装点
- 使用otp文件和cid hexstring进行3ds nand备份:
安装nandctr--otp otp.bin--cid 7468616e6b7334636865636b696e6721 nand.bin安装点
- DSI NAND备份(自动生成计数器):
安装nandtwl--控制台ID 4E696E74656E646F nand DSI.bin安装点
- 具有控制台id hexstring和指定cid hexstring的dsi和备份:
安装NANDTWL—控制台ID 4E696E74656E646F—CID 576879446F6573445369457786973743F NAND DSI.bin安装点
- 带有控制台ID文件和指定的CID文件的DSI和备份:
mount戋nandtwl--控制台id consoleid.bin--cid cid.bin nand戋dsi.bin装入点
- 交换机和备份
mount_u nandhac--keys prod.keys rawnand.bin安装点
- 在多个部分中切换和备份
mount_u nandhac--keys prod.keys-s rawnand.bin.00安装点
- NCCH容器(.app、.cxi、.cfa、.ncch):
mount_ch content.cxi安装点
- 只读存储器:
装入romfs romfs.bin装入点
任天堂3DS
SD卡目录:
mount_sd--movable movable.sed"/path/to/nintendo 3ds"挂载点
任天堂3DS
SD卡中的目录,该SD卡有一个十六进制的SD密钥:
mount_sd--sd key 504c415900000000504f4b454d4f4e21"/path/to/nintendo 3ds"挂载点
- 任天堂ds rom镜像(nds/srl,
mount\u nds
也可以工作):
mount_u srl game.nds
- 3DSX自制应用程序:
<代码>mount_threedsx boot.3dsx mountpoint 标题
NAND备份或SD卡安装中的目录:
安装标题安装点
有用的工具
- wwylele的"3ds保存工具" rel="nofollow">3ds保存工具可用于提取游戏保存和额外数据(分别为disa和diff)。
- wwylele的save3ds是用于3ds save文件的fuse mount。目前只支持MacOS和Linux。
- OSFmount对于Windows,可以在NAND备份中装载fat12/fat16分区。
相关工具
- maschell的fuse wii u可以用来安装wii u内容。
- Koolkdev's的wfslib有wfs fuse来安装Wii U MLC转储和USB设备。
许可证/学分
ninfs
在麻省理工学院的许可下。
fuse.py
在ISC许可证下(取自setup.py
)。hac/aes.cpp
和hac/aes.hpp
来自@openluopworld的aes_提交b5b7f55
,并使用mit许可证。hac/ccrypto.cpp
aes-xts部分由@luigaoalma编写,基于@plutooo的加密模块,;python模块由我实现(@ihaveamac)。
- 右键单击安装并选择"弹出"驱动器名""。
- 从终端运行:
diskutil unmount/path/to/mount
fusermount-u/path/to/mount
mount_cci game.3ds mountpoint
挂载cdn cdn目录挂载点
安装CDN--dec key 3e3e376974e696f2f76416a65423cCDN U目录安装点
mount_cia game.cia挂载点
装入exefs exefs.bin装入点
essential.exefs
嵌入的3ds NAND备份:安装nandctr nand.bin安装点
安装nandctr--otp otp.bin nand.bin安装点
安装nandctr--otp otp.bin--cid nand&cid.bin nand.bin安装点
安装nandctr--otp otp.bin--cid 7468616e6b7334636865636b696e6721 nand.bin安装点
安装nandtwl--控制台ID 4E696E74656E646F nand DSI.bin安装点
安装NANDTWL—控制台ID 4E696E74656E646F—CID 576879446F6573445369457786973743F NAND DSI.bin安装点
mount戋nandtwl--控制台id consoleid.bin--cid cid.bin nand戋dsi.bin装入点
mount_u nandhac--keys prod.keys rawnand.bin安装点
mount_u nandhac--keys prod.keys-s rawnand.bin.00安装点
mount_ch content.cxi安装点
装入romfs romfs.bin装入点
任天堂3DS
SD卡目录:mount_sd--movable movable.sed"/path/to/nintendo 3ds"挂载点
任天堂3DS
SD卡中的目录,该SD卡有一个十六进制的SD密钥:mount_sd--sd key 504c415900000000504f4b454d4f4e21"/path/to/nintendo 3ds"挂载点
mount\u nds
也可以工作):mount_u srl game.nds
<代码>mount_threedsx boot.3dsx mountpoint
标题
NAND备份或SD卡安装中的目录:安装标题安装点
- wwylele的save3ds是用于3ds save文件的fuse mount。目前只支持MacOS和Linux。
ninfs
在麻省理工学院的许可下。
fuse.py
在ISC许可证下(取自setup.py
)。hac/aes.cpp
和hac/aes.hpp
来自@openluopworld的aes_提交b5b7f55
,并使用mit许可证。hac/ccrypto.cpp
aes-xts部分由@luigaoalma编写,基于@plutooo的加密模块,;python模块由我实现(@ihaveamac)。
特别感谢@stary2001对nand crypto(特别是twl)的帮助,以及@d0k3对sd crypto的帮助。
OTP代码来自stary2001/3ds\u tools,并在麻省理工学院许可证下。