hactool 完整指南:快速解析、解密并提取 Switch 游戏文件
hactool 完整指南:快速解析、解密并提取 Switch 游戏文件
【免费下载链接】hactoolhactool is a tool to view information about, decrypt, and extract common file formats for the Nintendo Switch, especially Nintendo Content Archives.项目地址: https://gitcode.com/gh_mirrors/ha/hactool
想看懂 Switch 游戏包里的内容?hactool 是一款开源的 Switch 文件解析工具,能查看、解密并提取 XCI、NCA、NSP 等格式,把加密的游戏数据变成你能直接读的文件。
它到底能帮你做什么
- 🔍 帮你一眼看清文件结构:一个 NCA 里有哪些分区、用的什么加密,跑一下就有答案
- 🔧 帮你解密受保护的内容:配合密钥文件,把加密 NCA 转成明文副本
- 📦 帮你把资源完整提取出来:XCI 卡带、NSP 安装包里的 RomFS、ExeFS 都能拆开
- ✅ 帮你验证完整性:校验哈希与签名,判断文件有没有被改动
第一次上手:从克隆到跑通第一个文件
环境只需 Git、Make 和 C 编译链。克隆仓库并编译:
git clone https://gitcode.com/gh_mirrors/ha/hactool && cd hactool cp config.mk.template config.mk && make如果 make 不是 GNU make(BSD 系),把make换成gmake即可。
编译完生成hactool可执行文件,找个 .nca 文件验证一下:
./hactool -i game.nca能打印出文件头信息,说明工具已经跑通。
hactool 使用方法:三件最常用的事
1. 查看文件信息
./hactool -i game.nca-i是默认动作,会显示魔数、分区布局和加密类型。什么都不传也会执行它。
2. 如何解密 NCA
./hactool -k prod.keys --plaintext game_plain.nca game.nca-k指定密钥文件,--plaintext把整个 NCA 解密后另存一份。对 Rights ID 加密的内容,把标题密钥放进~/.switch/title.keys即可被自动读取。
3. 提取 XCI / NSP 资源
./hactool -k prod.keys -x game.xci --outdir extracted-x也是默认动作,NCA 会按分区拆成文件落盘。NSP 这类 PFS0 封装的包,加-t pfs0指定类型就能处理。
Switch 文件结构:项目里藏着什么
- 根目录按格式拆分:
nca.c、xci.c、nso.c、pfs0.c、hfs0.c各管一种文件 - mbedtls/ 是内置加密库,AES、RSA、SHA 都靠它,mbedtls/programs/ 还有配套示例程序
- mbedtls/tests/ 放了完整测试用例,改代码前可以跑一遍
- KEYS.md 列出工具认识的所有密钥名,排错时很实用
hactool 参数:效率玩法
-i、-x本来就是默认动作,不加也能跑- 加
-y顺手校验哈希与签名,提取和验签一次完成 --xcontenttype=program只提取程序内容,跳过手册和元数据- 批量处理写个 for 循环,对目录里的
*.nsp逐个加-t pfs0 -x --outdir
卡住了怎么办
症状:报unable to open ...打不开文件原因:路径含空格,或文件名写错解法:路径加引号,先ls确认文件名
症状:警告prod.keys does not exist,解密失败原因:没带-k,或默认目录里没有密钥解法:用-k显式指定,或把密钥放到~/.switch/prod.keys
症状:make报错找不到config.mk原因:漏了复制模板这一步解法:先执行cp config.mk.template config.mk再编译
写在最后
hactool 把 Switch 文件解析压缩成了三件事:看信息、解密、提取。建议从手头某个 .nca 文件开始,跑通-i再试-x,对照 KEYS.md 逐个认识密钥,你会对 Switch 的文件结构越看越明白。
(仅用于学习与研究,请遵守当地法规,妥善保管密钥文件。)
【免费下载链接】hactoolhactool is a tool to view information about, decrypt, and extract common file formats for the Nintendo Switch, especially Nintendo Content Archives.项目地址: https://gitcode.com/gh_mirrors/ha/hactool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
