kgg-dec/README.MD

91 lines
3.5 KiB
Plaintext
Raw Normal View History

2024-10-17 00:50:14 +00:00
# kgg-dec
酷狗 `kgg` 文件解密工具。
2024-10-17 00:50:14 +00:00
请尽量在下载文件的设备上操作,避免密钥丢失。
## 使用方法 (快捷)
2024-10-17 00:50:14 +00:00
1. 双击 `kgg-dec.exe` 开始解密当前目录。
2024-10-17 00:50:14 +00:00
## 使用方法 (命令行)
1. 启动 `kgg-dec.exe`,其中第一个参数为含有 `kgg` 文件的目录。
2. 你也可以使用 `--` 来将参数后的 `-` 开头的参数视为输入文件或目录。
3. 你可以指定多项输入文件或目录。
### 其它参数
* `--scan-all-file-ext` (可选,`0` 或 `1`): 是否扫描所有文件后缀名。默认为 `0`,只扫描 `kgg` 文件。
* `--db` (可选): 指定 `KGMusicV3.db` 的路径。默认为 `%AppData%/Kugou8/KGMusicV3.db`。
* `--suffix` (可选): 指定解密后文件的后缀。默认为 `_kgg-dec`。
2024-10-17 00:50:14 +00:00
### 使用示例
2024-10-17 00:50:14 +00:00
* `kgg-dec.exe "D:\Music"`: 解密 `D:\Music` 目录下的所有 `*.kgg` 文件。
* `kgg-dec.exe "D:\Music" "D:\KGG\1.kgg"`: 解密 `D:\Music` 目录下的所有 `*.kgg` 文件,以及 `1.kgg`。
* `kgg-dec.exe "D:\Music" --scan-all-file-ext 1`: 尝试将 `D:\Music` 目录下的所有文件视为 `kgg` 文件来解密。
* `kgg-dec.exe "D:\Music" --suffix ""`: 解密后不添加额外的后缀。
2024-10-17 00:50:14 +00:00
指定完参数后可以指定任意数量的文件或目录。
2024-10-17 23:28:04 +00:00
## 错误排查
2024-10-17 23:28:04 +00:00
1. 需要至少播放一次 `kgg` 文件,并确保酷狗能正常播放。
- 如果还是无效,请尝试使用酷狗重新下载,在同一个设备上进行下载与解密操作。
2. 文件后缀名嗅探代码只支持:`ogg` / `flac`。
* 其他格式会被识别为 `mp3`。
2024-10-17 23:28:04 +00:00
## 构建
在 Windows 下使用 CMake + Visual Studio 2022 构建。
第一次构建前请到 `third-party/sqlite3` 目录下执行 `fetch_sqlite3.sh`,或手动下载源码放置到对应的位置。
然后就可以利用 CMake 构建了:
```cmd
cmake --preset vs -DCMAKE_BUILD_TYPE=Release
cmake --build --preset vs-release --config Release
copy /y README.MD .\\build\\vs2022\\
```
2024-12-21 04:19:57 +00:00
### CMake 参数
CMake 支持以下参数:
- `USE_WIN_SQLITE3` - 使用 Windows 内置的 SQLite3 链接库(仅限 Windows + MSVC 编译环境)。
- `USE_WIN_CRYPTO` - 使用 Windows 内置的加密/哈希实现,而非软件实现(仅限 Windows 目标)。
2024-12-21 16:51:39 +00:00
- `USE_SYSTEM_SQLITE3` - 使用外部的 SQLite3 实现 (Debian: `libsqlite3-dev`),找不到时会报错。
- `USE_OpenSSL` - 使用 OpenSSL 的加密/哈希实现 (Debian: `libssl-dev`),找不到时会报错。
Ubuntu 下编译发布版,不使用外部库:
```sh
cmake -G "Ninja Multi-Config" -B build/linux-all -DUSE_SYSTEM_SQLITE3=0 -DUSE_OPENSSL=0
cmake --build build/linux-all --config Release -j
```
Ubuntu 下编译发布版,链接到现有的库:
```sh
cmake -G "Ninja Multi-Config" -B build/linux-ext -DUSE_SYSTEM_SQLITE3=1 -DUSE_OPENSSL=1
cmake --build build/linux-ext --config Release -j
```
2024-12-21 04:19:57 +00:00
### 第三方软件
该程序用到了以下第三方软件:
- [SQLite3](https://www.sqlite.org/) (Public Domain)
- [Tiny AES in C](https://github.com/kokke/tiny-AES-c) (Public Domain)
- [MD5.c](https://github.com/freebsd/freebsd-src/blob/release/14.2.0/sys/kern/md5c.c) (from FreeBSD)
- Derived from the "RSA Data Security, Inc. MD5 Message-Digest Algorithm".
2024-12-21 04:19:57 +00:00
### Windows 7 用户注意
请从 SQLite 官网下载 [`sqlite-dll-win-x64-*.zip`](https://www.sqlite.org/download.html#win32)
并将压缩包内的 `sqlite3.dll` 放置到 `kgg-dec.exe` 同目录下,并更名为 `winsqlite3.dll`。
Windows 10 或更新版本不需要此操作,因为 Windows 10 或以上的版本内置该文件。