用于任天堂控制台文件的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。

  • fusepy预先包含,直到拒绝有一个完全稳定的版本。

窗口

需要Windows 7或更高版本。

带有gui的独立可执行文件可供使用。您可以从github获取一个可执行文件以供下载,网址是githubGBATemp下载中心"将出现一个窗口,允许您轻松选择安装选项。

不必安装python,但仍然需要使用winfsp。

使用现有的python安装

Mac操作系统

带有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]

Linux

  • arch linux:ninfs在aur中可用:正常使用guigit带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装入点
  • 任天堂3DSSD卡目录:
    mount_sd--movable movable.sed"/path/to/nintendo 3ds"挂载点
  • 任天堂3DSSD卡中的目录,该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设备。

许可证/学分

特别感谢@stary2001对nand crypto(特别是twl)的帮助,以及@d0k3对sd crypto的帮助。

OTP代码来自stary2001/3ds\u tools,并在麻省理工学院许可证下。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配