# ttpkGameUnpacker **Repository Path**: bignius/ttpkGameUnpacker ## Basic Information - **Project Name**: ttpkGameUnpacker - **Description**: 抖音小游戏解包工具 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ttpkGameUnpacker 抖音小游戏 TPKG 解包工具。 ## 依赖来源 本工具依赖字节跳动的 `arkcrypto-minigame-js` 解密模块(WASM),该模块**不在 npm 公开仓库**中,需要从抖音开发者工具目录手动拷贝。 来源路径: ``` C:\Program Files\@bytedminiprogram-ide\resources\app\app.content\node_modules\@byted\arkcrypto-minigame-js ``` 请将该目录完整复制到本项目的 `vendor/@byted/arkcrypto-minigame-js/` 下: ## 获取小游戏包 抖音小游戏在安卓手机上的缓存目录为: ``` /data/data/com.ss.android.ugc.aweme/files/bdp/launchcache/ ``` 进入该目录后可以看到很多 `appid_` 开头的文件夹,每个文件夹对应一个小游戏。例如: ``` /data/data/com.ss.android.ugc.aweme/files/bdp/launchcache/appid_xxx/ ``` 如果不知道某个 `appid_` 文件夹对应哪个小游戏,可以查看该目录下的 `ver_xxx-normal/_.meta` 文件。其中包含游戏名称、图标、简介等元数据,例如: ```json { "value": { "appid": "ttxxxxxxxxxxxxxxxxxxx", "name": "xxx", "icon": "https://...", "summary": "xxx", "version": "0.0.0" } } ``` 一个完整的抖音小游戏目录结构示例: ``` appid_xxx/ ├── 2.local_launch_counter ├── xxx.latest_version_code ├── _.extra └── ver_xxx-normal/ ├── _.meta ├── xxx1.pkg ├── xxx2.pkg ├── xxx3.pkg ├── xxx4.pkg ├── xxx5.pkg └── ... ``` 将这些 `.pkg` 文件拷贝到电脑后即可使用本工具解包。 ## 使用 ```bash node ttks_unpack.js ``` 单文件解包: ```bash node ttks_unpack.js ./js/xxxxxxx.pkg ./output ``` 目录批量解包(自动处理该目录下所有 `.pkg` 文件,每个包输出到独立的子目录): ```bash node ttks_unpack.js ./js ./output ``` ## 说明 - 解析 TPKG 头部元数据,提取 `__ttks` 密钥。 - 使用 `arkcrypto` 解密文件索引和文件内容。 - 文本类文件按 1024 字节分段解密,二进制文件只解密前 64 字节。 ## 参考 - [ttpkUnpacker](https://gitee.com/bignius/ttpkUnpacker)