An experimental toolset for Unity asset and asset bundle files.
Java
Latest commit 6c1c321 Sep 3, 2016 @ata4 committed on GitHub Merge pull request #200 from RupW/unityfs-prototype
Prototype UnityFS bundle reader support

README.md

DisUnity

An experimental command-line toolset for Unity asset and asset bundle files written in Java, mostly designed for extraction.

Download

The latest build can be found on the releases page.

A note about the versions

0.3 works best with Unity 3.x and has most of the original extraction features.

0.4 is a somewhat incomplete and untested upgrade to support Unity 4 and 5 and has some of the extraction features of 0.3.

0.5 is a code rewrite to properly support all Unity games from 2 to 5 that also comes with unit tests. Right now, it only supports raw file reading and writing without any object deserialization, therefore it also can't extract any asset data directly.

Usage

disunity <command> [options] <file>

Note: depending on the platform, you may need to run disunity.bat (Windows) or disunity.sh (Linux/MacOS). In case the launch script fails, try java -jar disunity.jar.

Available commands (v0.5)

Asset commands

Command Purpose
asset blocks List data block offsets and sizes. Could be useful for manual extraction.
asset externals List asset file dependencies.
asset header Display some information from the file header.
asset objectids List object identifiers (Unity 5 and higher only).
asset objects List object data entries.
asset types Display embedded runtime type information.
asset unpack Unpacks raw data blocks from a file. Could be useful for manual extraction.

Asset bundle commands

Command Purpose
bundle list List bundled files.
bundle info Display some information from the file header.
bundle pack Pack files into a bundle. Requires a bundle property file.
bundle unpack Unpack files from a bundle.