Unity Unity3d UnityFS: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
(No difference)

Revision as of 23:22, 21 March 2022

Back to index | Edit this page

Unity3d

  • Format Type : Archive
  • Endian Order : Little Endian / Big Endian
  • Signature : UnityFS


Format Specifications

// Unity3d file format

// header
8 bytes (char) - signature + null // "UnityFS"
4 bytes (uint32) - version  // 6 or 7
6 bytes (char) - minimum player version + null  // e.g. "5.x.x."
12 bytes (char) - file engine version + null // e.g. "2017.4.35f1." - Punishing: Gray Raven
                                             //      "2018.2.6f1.." - Figment
                                             //      "2018.4.24f1." - Shadowverse / Wings of Destiny M
                                             //      "2018.4.5f1.." - Blacksad: Under The Skin
                                             //      "2019.4.0f1.." - Life Is Strange: Before the Storm Remastered
                                             //      "2019.4.21f1." - Marvel Duel
                                             //      "2019.4.22f1." - Game of Nightmares
                                             //      "2019.4.23f1." - Argonavis
                                             //      "2020.3.18f1." - Blankos Block Party
                                             //      "2020.3.26f1." - Cloud Gardens
8 bytes (uint64) - archive size
4 bytes (uint32) - compressed "info block" data size
4 bytes (uint32) - uncompressed "info block" data size
4 bytes (uint32) - flags


// info block
// Note: this section may be compressed with LZ4
{
   // blocks info
   16 bytes - hash
   4 bytes (uint32) - number of blocks  
   num_of_blocks *
   {
      4 bytes (uint32) - uncompressed block size
      4 bytes (uint32) - compressed block size
      2 bytes (uint16) - flags
   }

   // paths info
   4 bytes (uint32) - number of paths
   num_of_paths *
   {
      8 bytes (uint64) - path location
      8 bytes (uint64) - size of the uncompressed data
      4 bytes (uint32) - flags  // 0x04 - serialized file
      37 bytes (char) - filepath  // e.g. "CAB-c0f952eacf35e09957047188fc534360"
   }
}

   
// data
num_of_files *
{
   x bytes - file data  // may be compressed with LZ4
}  

Notes and Comments

  • UnityFS is a new asset bundle format introduced in Unity 5 Engine.
  • Files inside archive may be compressed with LZ4 compression method.
  • Archive may be partially or fully encrypted with XOR or with AES.
  • In some games filenames of unity3d archives may be hashed, for example "06477b71ac17b5740482e85abc24da14" and they don't have *.unity3d extension.

Games

List of games using this file format:

  • Alternative girls 2 (Android) (no extension)
  • Argonavis from BanG Dream! AAside (Android) (no extension) (encrypted with XOR, key is "CB 69 BF 09")
  • Blacksad: Under The Skin (no extension?)
  • Blankos Block Party (Unity 2020.3.18f1) (encrypted)
  • Cloud Gardens (PC) (*.bundle) (not encrypted)
  • Figment (PC) (no extension) (not encrypted)
  • Game of Nightmares (iOS) (no extension) (encrypted with XOR, key is "0x0B", more info here)
  • Life Is Strange: Before the Storm Remastered (*.bytes) (not encrypted)
  • Marvel Duel (Android) (no-extension) (extra 20-bytes header: "MARVEL DUAL PACKAGE " and multiple UnityFS files joined together in one big file)
  • NEO: The World Ends With You (PC) (*.unity3d) (Encrypted with AES-128-CBC, read more here)
  • Punishing: Gray Raven (Android) (no extension) (Unity 2017.4.35f1) (Game version: 1.9.1 (global) ) (not encrypted, but "Kuro" word is added before "UnityFS" signature)
  • Shadowverse (Android) (*.unity3d)
  • Wings of Destiny M (Android) (*.unity3d) (encrypted?)

quickBMS Scripts

See List of Unity Tools article on this wiki.

Compatible Programs

See List of Unity Tools article on this wiki.

See Also

Gallery