的问题是不是英文的,所以这是我的翻译:澄清 - Java的
经常出现这样的游戏创建资源包。它们是一个大型的二进制文件,由TOC(目录)和不间断编写的游戏资源组成。制作一个读取这种资源包的程序,并从中提取文件,同时保持目录结构。
这里是一个资源包的例子:
///
/// Header
///
DWORD: Header //BNDL
DWORD: Version //0x02
ULONG: TOC size //
///
/// TOC markers
///
byte:
01 - file name (zero terminated string). If the string
starts with char 0x01, then it is a directory
02 - file info (ulong - offset from beginning of the file,
DWORD – file size in bytes)
03 - move to parent directory
00000010 0101 6461 7461 0001 0161 6E69 6D73 0001 ..data...anims..
00000020 0167 686F 7374 0002 FCBD 1C02 0000 0000 .ghost..........
00000030 823D 7000 0167 686F 7374 5F6D 6163 6869 .=p..ghost_machi
00000040 6E65 2E78 6D62 00 ne.xmb.
string filename = data/anims/ghost/ghost_machine.xmb
ulong offset = 0x00000000021cbdfc
DWORD filesize = 0x000703D82
------------------------------------------------------
000001C5 0301 0167 7569 0002 308A 2E01 0000 0000 ...gui..0.......
000001D5 52D7 0200 0161 6C65 7274 2E78 6D62 00 R....alert.xmb.
0301 0167 7569 00 - go to the parent directory and enter
directory “gui”
string filename = data/gui/alert.xmb
ulong offset = 0x012E8A30
DWORD filesize = 0x0002D752
其中:
ulong (8 byte) = long
DWORD (4 byte) = int
我明白,我必须做一些提取,但无法得到的东西威腾背后的意义在文件中。示例中显示的文字是什么?
你试过了什么?我建议你开始阅读Bundle数据,然后找到告诉你其他文件位于哪里的线...... –