3dsconv 使用教程:把 3DS 卡带镜像转成 CIA 的完整路线,加密处理与批量转换一次讲清

📅 2026/8/16 13:25:15
3dsconv 使用教程:把 3DS 卡带镜像转成 CIA 的完整路线,加密处理与批量转换一次讲清
3dsconv 使用教程把 3DS 卡带镜像转成 CIA 的完整路线加密处理与批量转换一次讲清【免费下载链接】3dsconvPython script to convert Nintendo 3DS CCI (.cci, .3ds) files to the CIA format项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv上个月整理旧硬盘三百多个 .3ds 备份全都装不进 3DS最后是 3dsconv 把我从手工转换里解放出来的——它是把任天堂 3DS 的 CCI.3ds/.cci镜像转成 CIA 安装包的 Python 工具。转换过程比自己想的省事命令一行加密状态自动识别还能整目录批量处理。这篇文章按我实际动手的顺序来写从安装、首次转换、处理加密卡带到批量转换和排错每一步都给出能直接照抄的命令。为什么游戏库里躺着那么多 .3ds却一个都装不上3DS 上的卡带镜像和安装包是两种东西.3ds / .cciCTR Cart Image卡带完整镜像内部是 NCSD 容器 NCCH 分区。.ciaCTR Importable Archive自制系统FBI、GodMode9 安装器认的就是它。早年 dump 卡带只能得到 .3ds 镜像近几年 GodMode9 已经能直接从卡带 dump 成 .cia。但存量老镜像不会自己变身3dsconv 做的就是这最后一公里读镜像、识别加密、重新打包成规范 CIA。它真正省心的地方在于加密检测。CCI 的加密状态写在 NCCH 头的标志位里脚本会自动读出来你不需要去判断我这个镜像到底加没加密。3dsconv 安装步骤克隆、装依赖、一条命令自检依赖只有一个pyaes纯 Python 的 AES 实现转换加密内容全靠它。git clone https://gitcode.com/gh_mirrors/3d/3dsconv cd 3dsconv pip install pyaes装完怎么确认能用有个小细节脚本没有注册--help不带任何参数直接跑它就会打印版本号和完整帮助python3 3dsconv/3dsconv.py看到开头一行3dsconv.py ~ version 4.21下面跟着 Usage 说明就说明环境没问题 ✅。想全局调用也可以python3 setup.py install之后直接敲3dsconv命令。第一次转换拿一个未加密镜像练手先找一个确定未加密的 dump执行python3 3dsconv/3dsconv.py my_game.3ds --outputcia_out/这条命令帮你做的事cia_out/目录不存在时会自动创建读取 NCSD 头定位 Game Executable、Manual、Download Play 三个分区从 ExeFS 里把游戏的 SMDH 图标抠出来写进 CIA装好后主菜单能正常显示图标转换过程中实时刷新进度百分比大文件也能看到它确实在动结束后打印Done converting 1 out of 1 files.目录里多出一个my_game.cia。背后还有个容易被忽略的细节脚本会把 ExtHeader 打上SD title补丁并重新计算、写入各级 SHA-256 哈希——生成的 CIA 是结构完整、可以直接交给安装器的。加密卡带怎么转先弄到 boot9.bin 并校验它加密镜像分三种情况未加密直接转什么都不用准备zerokey 加密用全零密钥处理也不需要额外文件原始 NCCH 加密slot 0x2C需要 ARM9 bootROM 里的 key X也就是 boot9 。boot9 从哪来在已安装 boot9strap 的 3DS 上开机按住START SELECT X就能 dump 出sdmc:/boot9strap/boot9.bin拷贝到电脑即可。脚本按固定顺序寻找它--boot9参数指定的路径优先级最高环境变量BOOT9_PATH也可以设默认值当前目录下的boot9.bin、boot9_prot.bin~/.3ds/目录下的boot9.bin、boot9_prot.bin。建议拿到手先校验一下避免放了损坏文件还不自知sha256sum boot9.bin # 期望输出2f88744feed717856386400a44bba4b9ca62e76a32c715d4f309c399bf28166fboot9_prot.bin只含保护段对应的哈希是7331f7edece3dd33f2ab4bd0b3a5d607229fd19212c10b734cedcaf78c1a7b98。确认无误后加密镜像就能正常转了python3 3dsconv/3dsconv.py mario.3ds --boot9./boot9.bin --outputcia_out/提醒一句boot9 属于系统固件的一部分请只转换你自己合法 dump 的备份不要拿去传播。3DS CCI 批量转 CIA一次处理整个游戏目录游戏多的时候一条命令全带走python3 3dsconv/3dsconv.py game1.3ds game2.3ds game3.3ds --outputcia_out/也可以直接用通配符脚本自己会对参数做 glob 展开python3 3dsconv/3dsconv.py *.3ds --outputcia_out/批量场景下的几个注意点输出目录已有同名 .cia 时脚本会跳过并提示想覆盖就加--overwrite脚本按 8MB 一块边读边写内存占用很稳定转 4GB 大游戏也不用担心内存爆掉全部结束后会统计Done converting N out of N files.一眼看出有几个失败。3dsconv 常用参数速查参数作用--output目录指定输出目录默认当前目录--boot9文件指定 boot9 dump 路径--overwrite覆盖已存在的同名 CIA--ignore-encryption忽略加密标志位按未加密处理--ignore-bad-hashes哈希校验不通过也强行转换--verbose打印更详细的处理过程--dev-keys使用开发者密钥模式3dsconv 报错排查按顺序检查这五处实际遇到的报错基本都能归到下面几类pyaes not found—— 没装依赖。pip install pyaes后重试。bootROM not found, encryption will not be supported—— 加密镜像需要 boot9。按上文步骤放好文件或加--boot9如果镜像确定未加密检查是不是标志位在干扰。is not a CCI file (missing NCSD/NCCH magic)—— 文件不是合法镜像。注意 NAND dump 也带 NCSD magic脚本会用 NCCH 检查再拦一道混进来的系统 dump 会在这里被挡下。already exists—— 同名 CIA 已存在加--overwrite。This file may be corrupt (invalid ExtHeader hash)—— 哈希对不上。如果你确定镜像本身没问题、只是标志位被改过用--ignore-encryption确定文件已损坏、想强行转再加--ignore-bad-hashes。如果 CIA 转出来装不上优先检查游戏区域和主机区域是否一致再看安装器比如 FBI是否支持当前系统版本。两个进阶场景开发者密钥与假装没加密开发者密钥--dev-keys。少数开发版标题用 dev-unit 密钥加密转换时加--dev-keys并把certchain-dev.bin可从 dev CIA 用ctrtool --certs导出放到当前目录或~/.3ds/下。不过要泼冷水脚本不会改变输出文件的加密状态转出来的 CIA 仍是 dev 密钥加密只能在开发机上安装README 里也注明了未完全测试。--ignore-encryption。它适合一类尴尬场景镜像其实是已解密的但加密标志位仍标着已加密直接转会报哈希错误。加上这个参数后脚本会强制按未加密处理并把 NCCH 标志改成 NoCrypto。注意别对真正加密的文件用否则只会转出一堆乱码 ⚠️。工具边界3dsconv 现在适合谁用作者在 README 里很坦白Decrypt9WIP 和 GodMode9 已经能直接从卡带 dump 成 CIA这个工具部分过时。所以它的正确打开方式是手头有一批存量 .3ds 老镜像需要转成 CIA想在 Windows 下免装 Python 使用——配合 py2exe 可以把脚本打包成3dsconv.exe直接把 .3ds 拖到 exe 上就行想读一份干净、无依赖的 3DS 容器解析代码——整个转换逻辑就一个文件3dsconv/3dsconv.py说明都在README.mdMIT 协议随便翻。如果只是为了转新 dump直接用 GodMode9 更省事但如果你和我一样硬盘里存着几百个考古镜像3dsconv 就是那个最顺手的搬砖工具。去仓库把代码拉下来找一个 .3ds 试试第一条命令。想深入的话可以从两个方向继续一是弄懂 NCSD / NCCH / CIA 三种容器各自的结构二是研究 AES-CTR 在 3DS 加密里的具体用法slot 0x2C 的 key 就是上面 boot9 那段逻辑。【免费下载链接】3dsconvPython script to convert Nintendo 3DS CCI (.cci, .3ds) files to the CIA format项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考