用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/londospark/citrust --skill 3ds-rom-crypto命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | 3ds-rom-crypto |
| description | 3DS ROM (NCSD/NCCH) encryption/decryption pipeline knowledge |
| domain | cryptography |
| confidence | high |
| source | b3DS-master/b3DSDecrypt.py analysis |
This skill covers the Nintendo 3DS ROM file format (NCSD/NCCH) and its AES-128-CTR encryption scheme. Essential for anyone working on citrust (the Rust port of b3DSDecrypt.py).
0x200 * 2^(ncsd_flags[6]) (read flags at 0x188)NormalKey = ROL128((ROL128(KeyX, 2) ^ KeyY) + Constant, 87)
KeyX: Selected by crypto method flag (partition_flags[3])
KeyY: First 16 bytes of partition RSA signature (offset 0x0 from partition start)Constant: [REDACTED]NormalKey2C: Always derived from KeyX0x2C (used for ExHeader + ExeFS table)FixedCryptoKey flag (flags[7] bit 0) → both keys = 00x01000000000000000x02000000000000000x0300000000000000NoCrypto bit (0x04) at partition_offset + 0x18FFixedCryptoKey (0x01) and CryptoUsingNewKeyY (0x20) at same offsetThis is the trickiest part. For 7.x/9.x encrypted ROMs:
.code file within ExeFS is encrypted with TWO layersplaintext = encrypt_2C(decrypt_7x(ciphertext))(file_offset_within_exefs + sector_size) / 16u128 is sufficient and much faster than bignum