分卷
当打包时指定 --volume-size,数据体(混淆后的压缩流)会被分割为多个分卷。
文件命名
| 场景 | 命名 |
|---|---|
| 单卷 | output.ttp |
| 多卷 | output.ttp.001, output.ttp.002, … |
卷序号固定为 3 位十进制数字(001–999)。
头部字段
每卷拥有独立 26 字节头部,其中分卷相关字段:
| 偏移 | 大小 | 说明 |
|---|---|---|
| 10 | 2 | 当前卷序号(uint16 LE,从 1 开始) |
| 12 | 2 | 总卷数(uint16 LE) |
| 14 | 4 | 本卷数据长度(uint32 LE) |
拼接规则
各卷的数据体(头部之后、魔数校验之前的字节)依次拼接,即为完整的混淆压缩流:
完整混淆流 = 卷1数据 + 卷2数据 + … + 卷N数据拼接后统一执行:逆置换 → 解压 → 解析载荷。
解包流程
- 读取第一个分卷头部,获取总卷数
- 按
001→002→ … 顺序读取各卷数据体 - 若实际找到的分卷数少于预期总卷数,视为数据不完整(实现应发出警告)
- 拼接所有数据体,执行后续处理
