Nintendo Switch 文件解析工具 NSTool 完全指南
【免费下载链接】nstoolGeneral purpose read/extract tool for Nintendo Switch file formats.项目地址: https://gitcode.com/gh_mirrors/ns/nstool
NSTool 是一款专为 Nintendo Switch 文件格式设计的全能解析工具,采用 C++ 语言开发,构建系统使用 Makefile。该工具能够深入解析 Switch 的各种文件格式,为游戏开发和逆向工程提供强大支持。
核心功能特性
全面文件格式支持
NSTool 支持多种 Nintendo Switch 文件格式,包括:
- PartitionFs (PFS0) - 分区文件系统格式
- Sha256PartitionFs (HFS0) - 带 SHA256 校验的分区文件系统
- RomFs - Switch 专用的只读文件系统
- Nintendo Content Archive (NCA) - 内容存档格式
- Nintendo Submission Package (NSP) - 提交包格式
- NX GameCard Image (XCI) - 游戏卡映像格式
- Meta (META) - 元数据格式
- Nintendo Application Control Property (NACP) - 应用控制属性
- Content Metadata (CNMT) - 内容元数据
- ES Certificate (.cert) - 电子签名证书
- ES Ticket (.tik) - 电子签名票据
- Nintendo Shared Object (NSO0) - 共享对象文件
- Nintendo Relocatable Object (NRO0) - 可重定位对象文件
- Initial Program Bundle (INI1) - 初始程序包
- Initial Program (KIP1) - 初始程序文件
智能文件处理能力
NSTool 具备强大的文件处理能力,能够自动识别文件类型并显示详细信息。用户可以通过不同选项来控制输出内容的详细程度:
- 默认模式显示文件基本信息
--showlayout选项显示文件布局信息--showkeys选项显示密钥数据生成和选择过程-v或--verbose选项启用详细输出模式
高级功能特性
文件类型手动指定
虽然 NSTool 在大多数情况下能够正确识别文件类型,但用户也可以手动指定文件类型以确保准确解析。支持的文件类型代码包括:
gc或xci- NX GameCard Imagensp- Nintendo Submission Packagepfs- PartitionFshfs- Sha256PartitionFsromfs- RomFsnca- Nintendo Content Archivemeta或npdm- Meta 文件cnmt- Content Metadatanso- Nintendo Shared Objectnro- Nintendo Relocatable Objectini- Initial Program Bundlekip- Initial Programnacp- Nintendo Application Control Propertycert- ES Certificatetik- ES Ticketaset或asset- Homebrew NRO 资源二进制文件
文件验证功能
NSTool 支持对特定文件类型进行验证,包括签名、哈希和字段验证:
- ES Certificate:验证签名,如果是证书链的一部分,会作为该链的一部分进行验证
- ES Ticket:验证签名,如果用户通过
--cert选项指定证书链,票据将针对该证书链进行验证 - NX GameCard Image:验证 XCI 头签名和 HFS0 哈希
- META:验证 AccessControlInfo 字段和 AccessControlInfoDesc 签名
开发者模式支持
针对开发者控制台的文件使用不同的加密和签名密钥,NSTool 默认选择生产环境密钥。当处理开发者控制台文件时,应使用-d或--dev选项启用开发者模式。
文件系统提取功能
NSTool 支持从多种文件类型中提取文件系统内容:
- PartitionFs
- Sha256PartitionFs
- RomFs(包括嵌入在 Homebrew NRO 中的 RomFs)
- NCA
- NSP
- XCI
提取功能支持四种模式:
- 提取整个文件系统到指定目录
- 提取子目录内容
- 提取特定文件并保留原始名称
- 提取特定文件并使用自定义名称
特殊功能特性
NCA 补丁处理
Nintendo 以差异文件的形式分发游戏补丁和更新,以保持文件大小。这意味着提取游戏补丁需要基础版本的游戏文件来处理补丁数据。
加密文件处理
某些 Nintendo Switch 文件是部分或完全加密的。这些文件需要用户向 NSTool 提供加密密钥才能进行处理。
密钥管理系统
密钥集文件格式
NSTool 支持通过密钥集文件导入密钥,这些文件是包含密钥的 ASCII 文本文件,格式为"key_name = HEXADECIMALKEY"。每行一个密钥,支持使用;字符插入注释。
自动加载机制
如果密钥集文件位于$HOME/.switch/目录中,它们将自动加载。
通用密钥支持
NSTool 支持两种通用密钥文件:
prod.keys- 生产环境密钥dev.keys- 开发者环境密钥
密钥兼容性
NSTool 的密钥集文件格式与 hactool 兼容,支持 hactool 的等效密钥名称。
构建与安装
项目使用 Makefile 进行构建管理,具体构建说明请参考 BUILDING.md 文档。用户可以通过克隆仓库来获取源代码:
git clone https://gitcode.com/gh_mirrors/ns/nstool然后按照构建文档中的说明进行编译和安装。
NSTool 凭借其强大的文件解析能力和持续的技术更新,已成为 Nintendo Switch 开发者和研究人员的必备工具,为 Switch 生态系统的开发和研究提供了重要支持。
【免费下载链接】nstoolGeneral purpose read/extract tool for Nintendo Switch file formats.项目地址: https://gitcode.com/gh_mirrors/ns/nstool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考