一个用于解包/封包 .aos 文件的命令行工具,是 exaosv2.cpp 的 RIIR 版本,并添加了封包功能。
从 Releases 下载可执行文件,并通过命令行执行:
aos unpack <xxx.aos>
aos pack <xxx>+-----------------------------------------------------------------+
| 文件头 (273 字节) |
+-----------------------------------------------------------------+
| 0x00 | 00 00 00 00 (4B) |
+-----------------------------------------------------------------+
| 0x04 | data_offset (4B) - 数据区的绝对起始偏移量 |
+-----------------------------------------------------------------+
| 0x08 | toc_length (4B) - 目录表总长度 |
+-----------------------------------------------------------------+
| 0x0C | archive_name (261B) |
+-----------------------------------------------------------------+
| 目录表 (TOC) (toc_length 字节) |
|-----------------------------------------------------------------|
| +------------------+ +------------------+ +------------------+ |
| | 条目 1 (40B) | | 条目 2 (40B) | | ... | |
| +------------------+ +------------------+ +------------------+ |
|-----------------------------------------------------------------|
| 文件数据区 (变长) |
+-----------------------------------------------------------------+
data_offset = 文件头大小 + 目录表总大小 = 273 + 文件数 * 40
目录表由一个或多个 AOSV2ENTRY 结构体连续排列组成。
| 字段 | 类型 | 长度 (字节) | 描述 |
|---|---|---|---|
filename |
char[32] |
32 | 文件名,以空字符结尾的字符串。 |
offset |
unsigned long |
4 | 文件数据相对于数据区起始位置的偏移量。 |
length |
unsigned long |
4 | 文件的字节长度。 |
- スターライト BLUE ~幼なじみで推しの娘が知らないうちに開発されていた~