Skip to content

Instantly share code, notes, and snippets.

@aki017
Created September 12, 2016 09:12
Show Gist options
  • Save aki017/c3ee398ec1725e846115f389916bca4e to your computer and use it in GitHub Desktop.
Save aki017/c3ee398ec1725e846115f389916bca4e to your computer and use it in GitHub Desktop.
Unity AssetBundle ksy (WIP)
meta:
id: asset_bundle
file-extension: unity5
endian: be
seq:
- id: archive_storage_header
type: archive_storage_header
- id: archive_storage_body
size-eos: true
types:
archive_storage_header:
seq:
- id: header
type: header
- id: blocks_info
size: header.compressed_blocks_info_size
types:
header:
seq:
- id: signature
type: strz
encoding: ASCII
- id: format_version
type: s4
- id: unity_major_version
type: strz
encoding: ASCII
- id: unity_major_version
type: strz
encoding: ASCII
- id: file_size
type: s8
- id: compressed_blocks_info_size
type: u4
- id: uncompressed_blocks_info_size
type: u4
- id: flags
type: u4
blocks_info:
seq:
- id: guid
size: 16
- id: blocks_size
type: s4
- id: blocks
type: storage_block
repeat: expr
repeat-expr: blocks_size
- id: directory_info_size
type: s4
- id: directory_infos
type: directory_info
repeat: expr
repeat-expr: directory_info_size
storage_block:
seq:
- id: uncompressed_size
type: s4
- id: compressed_size
type: s4
- id: flags
type: u2
directory_info:
seq:
- id: offset
type: s8
- id: size
type: s8
- id: flags
type: s4
- id: path
type: strz
encoding: ASCII
enums:
compression_method:
1: LZMA
3: LZ4
2: LZ4
3: LZ4HC
4: LZHAM
meta:
id: serialized_file
file-extension: no
endian: be
seq:
- id: header
type: header
- id: metadata
type: metadata
- id: object_data
type: object_data
types:
header:
seq:
- id: metadata_size
type: s4
- id: file_size
type: u4
- id: version
type: s4
- id: data_offset
type: u4
- id: endianness
type: u1
if: version >= 9
- id: reserved
size: 3
metadata:
seq:
- id: type_tree
type: type_tree
types:
type_tree:
seq:
- id: type_tree
type: type_tree_v3
if: _parent._parent.header.version > 13
- id: type_tree
type: type_tree_v2
if: 13 >= _parent._parent.header.version and _parent._parent.header.version > 6
- id: type_tree
type: type_tree_v1
if: 6 >= _parent._parent.header.version
types:
type_tree_v3:
seq:
- id: revision
type: strz
encoding: ASCII
- id: attributes
type: s4le
- id: embedded
type: u1
- id: num_base_classes
type: s4le
- id: base_classes
repeat: expr
repeat-expr: num_base_classes
type: base_class
types:
base_class:
seq:
- id: class_id
type: s4le
- id: script_id
if: class_id < 0
type: unity_hash128
- id: old_class_id
type: unity_hash128
- id: node
type: node
if: _parent.embedded == 1
node:
seq:
- id: num_fields
type: s4le
- id: string_table_len
type: s4le
- id: types
type: type_v2
repeat: expr
repeat-expr: num_fields
- id: string_table
type: string_table
size: string_table_len
types:
string_table:
seq:
- id: data
type: strz
encoding: ASCII
repeat: eos
type_v2:
seq:
- id: version
type: s2le
- id: tree_level
type: u1
- id: is_array
type: u1
- id: type_offset
type: s4le
- id: name_offset
type: s4le
- id: size
type: s4le
- id: index
type: s4le
- id: meta_flag
type: s4le
type_tree_v2:
seq:
- id: data
size-eos: true
type_tree_v1:
seq:
- id: data
size-eos: true
object_info_table:
seq:
- id: object_info_table
type: v3
if: _parent._parent.header.version > 14
- id: object_info_table
type: v2
if: 14 >= _parent._parent.header.version and _parent._parent.header.version > 13
- id: object_info_table
type: v1
if: 13 >= _parent._parent.header.version
types:
v3:
seq:
- id: length
type: s4
- id: content
type: content
repeat: expr
repeat-expr: length
types:
content:
seq:
- id: pathID
type: s8
- id: object_info
type: v3
types:
v3:
seq:
- id: stripped
type: u1
v2:
seq:
- id: length
type: s4
- id: content
type: content
repeat: expr
repeat-expr: length
types:
content:
seq:
- id: pathID
type: s8
- id: object_info
type: v2
types:
v2:
seq:
- id: data
size-eos: true
v1:
seq:
- id: data
size-eos: true
object_data:
seq:
- id: object_data
size: 0
unity_hash128:
seq:
- id: bytes
size: 16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment