| Crates.io | ncmmiao |
| lib.rs | ncmmiao |
| version | 2.10.22 |
| created_at | 2024-11-17 04:01:50.71697+00 |
| updated_at | 2025-09-07 07:30:23.209572+00 |
| description | A magic tool convert ncm to flac |
| homepage | |
| repository | https://github.com/lkhsss/ncmmiao |
| max_upload_size | |
| id | 1450884 |
| size | 139,269 |
一个使用Rust语言编写的ncm文件解密工具😆。
cargo build -r
支持单一文件,多文件夹递归批量解密。
Usage: ncmmiao [OPTIONS]
Options:
-w, --workers <WORKERS> 并发的最大线程数,默认为cpu核心数
-i, --input <输入文件/目录> 需要解密的文件夹或文件
-o, --output <输出目录> 输出目录 [default: NcmmiaoOutput]
-f, --forcesave 强制覆盖保存开关
-a, --autoopen 自动打开输出目录
-n, --nocolor 是否关闭彩色输出。在不支持真彩色的老机型中关闭。
-d, --debug... 设定输出日志的的等级。v越多日志越详细
-h, --help Print help
-V, --version Print version
文件位于D:/Music中,要求使用64线程,并且完成后自动打开文件夹,不强制覆盖保存
ncmmiao -i "D:/Music" -w 64 -a
覆盖保存覆盖保存用于当解密进行一半时突然终止程序,不知道程序是否已解密完成时启用,可以强制覆盖已存在的文件,保证文件完整性。
日志共六个等级: Error Warn Info Debug Trace v越多,日志越详细。 仅输出错误的日志 Error
ncmmiao -v
输出警告以上的日志 Warn
ncmmiao -vv
输出提示以上的日志 INFO (默认)
ncmmiao -vvv
以此类推
多线程支持
自动添加封面
解密进度条
命令行解析
自定义输出文件夹
计时功能
自动覆盖开关
优化并发设置
优化信息传递
颜色控制
| 信息 | 大小 | 作用 |
|---|---|---|
| Magic Header | 8 bytes | 文件头 |
| Gap | 2 bytes | |
| Key Length | 4 bytes | RC4密钥长度,字节是按小端排序。 |
| Key Data | Key Length | RC4密钥 |
| Music Info Length | 4 bytes | 用AES128加密后的音乐相关信息的长度,小端排序。 |
| Music Info Data | Music Info Length | Json格式音乐信息数据。 |
| Gap | 5 bytes | |
| CRC校验码 | 4 bytes | 图片的CRC32校验码,小端排序。 |
| Image Size | 4 bytes | 图片的大小 |
| Image Data | Image Size | 图片数据 |
| Music Data | 音乐数据 |
用AES128加密后的RC4密钥。
Json格式音乐信息数据。
RC4-KSA生成S盒。
用S盒解密(自定义的解密方法),不是RC4-PRGA解密。