Reverse Engineering Unity3D Files

Unity’s been around since 2005, and in that time it’s grown from a OS X only game engine to a cross platform engine for games, software and interfaces. Unity’s an incredibly powerful platform for both seasoned developers and amateurs alike. In this guide I’ll be using files created with Unity 4. Unity 5 beta is still in development, and I’ve no idea if any of these methods will work with version 5.

Reverse Engineering Unity3D Files (Decompiling)

First off you’ll need some tools.

QuickBMS for extracting the .unity3d file.
This script, used with QuickBMS to extract the .unity3d file.
disunity to extract .assets files.
dotPeek to decompile and view .dll files.

Now with all of those downloaded and extracted/installed, you need to get yourself a unity3d file. This procedure is the same for every unity3d file, no matter what platform it’s for. So go grab yourself one of those. In this guide I’ll be using one I downloaded from a game that’s in development. They use Unity as a front end for their login system.

So first things first, you’ll want to put your .unity3d file, and the bms script in the same folder, just for ease of use. Then run quickbms.exe.

quickbms will ask you to select the script you want to use. Select the one you downloaded.

It’ll then ask you to select the unity3d file you want to extract.

And finally it’ll ask for a directory to extract the files to. Select whatever you like, for this, I’ll just go with the quickbms directory.

And there we have it! You can go ahead and use dotPeek to examine the dlls, but I’m more interested in what’s in the .assets files.

Now, there’s two ways to do this, but I find the easiest and quickest way is to select your unity3d file, and move it to the same directory you extracted disunity to. We can use disunity to extract all the assets within a unity3d file. The reason we didn’t just do this first is disunity ignores the dlls, and other directories that might be in there.

Now, shift right click in explorer, and select “Open command window here”.

Now the command used to extract the unity3d file is very simple disunity extract filename.unity3d

disunity will now extract whatever assets are within the unity3d file. Depending on the filesize, this could take anything from a few seconds to a few minutes. Once it’s done, navigate to the folder it created, and enjoy all your wonderful assets. Depending on what you got your unity3d file from, there could be nearly anything in here, including 2D and 3D assets, fonts, shaders, audio, text files, who knows!

Thanks very much for reading through this, and if you’ve any questions or comments, let me know.

Recent search terms:

  • unity3d decompiler
  • unity3d Extract
  • unity3d file extract
  • https://gameart eu org/reverse-engineering-decompiling-unity3d-files/
  • reverse timeline unity3d
  • unpack unity3d file
  • decompile unity3d file
  • unity3d opener
  • decompress unity3d file
  • decompile unity games
  • unity game engine
  • reverse engineering unity3d files
  • unity decompile scene
  • Unpacker unity3d
  • unity assets unpacker
  • rip assets from unity
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1838 3inRlmd9Pct6CIXWrIQ40AhZFNm_SCuaaLyYCQ6d-Vz1OWVL8e2_TGt8T7TxUcAS b5f4bb76de0707ee3cc5ed79f01799f40923b7d7&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • reverse game assets
  • unity decompile script
  • unity executable reverse engineer
  • unity shader decompile
  • unity3d decompile
  • unity3d extractor
  • unity game reverse engineering
  • Unpack Unity3D assets
  • unpack unityfs unity3d file
  • unpacker
  • reverse engineering unity tutorial
  • reverse engineering unity games
  • Reverse Engineering unity app
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1831 F2IN_mFmqriWLWL4BYA5XO5SKT0L166p2luJp18KSIWcRiJ1YqtIyd_oCuyTE4Xd 0bef3b98740900308c17b23036a592b7cbd1420f&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1828 NnkYF3JNg7iUIUJt8CQMxVMtPFFKhSLWlxr7UPCCAIgKYhJPS7sn7Vt-qr3FG_3k c91d9da7b0ad87265e6d1296441b1e8fd117c620&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1821 kxOPBl1CpNusTxk1X19GgPmuAyE_-QyvrHE7fKgC_BoVeKQa7XmrKtrQRWKahzuy 86ae2a8f69f7958a76bfd85b1daed03caa37ea06&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • extract unityweb file
  • extract 3d from unity3d files
  • decompiler für unity C#
  • decompile unity3d
  • decompile unity game
  • decompile unity assets
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1831 QEa31t-KpYdLFhX-w1WE6xrO6lJ8HY7x5r58rpBctEelRTOYCOCQ8OtOg13Gh9EX 55a08003fdd5e2aa11a80d111cd4ef9f98931919&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1834 6p_N_da9G_JYcp4TYIrF0aHFpVx5IqLkxcbJZ8wpWDjTjRkfkSKCm0iXtWqCH_ml bab9f39b6a92ee2a37d9e2c2f8b985ff350dc750&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1835 mhVTE4W1BVb8hM0CJn5sOeJi8msDD0CueZcbkE9h0g71J5gbVUBmZyHoEK7tZftm 63651ff298848b34b7ccc7ea83d1defc07d9822f&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • reverse engineering unity 3d apk
  • reverse engineering game assets
  • reverse engineer unity ab file
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1885 91eGJpZrmclrGcaB0NeK3j0pkeAXXaXNmsKo3t8iBvZEE53s6N7LQPQ-ULUJS3ki 81645cd84eed8281dc65aea12034f7f36754fb9c&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1841 9DkaB0rPk-jZUeg85b82tyWxACcWLxf1grcjUA0nSaA_YNRdhxrR6GqhoMHz9b9p 10b53ff034c1ed9bc71427a0cdd90ef160ec4369&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1840 l7NX6FhI00LSQTIDPT_2iBIPIJVyDx30GNlp_XpNcXhML80-mZ2kmtJkqVTXgEVb 1ec4b494ed692a80d4e95c2b0a11e22aab47d036&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1836 rBFkKZ3o27y1AtGy3YlE8b7qcxJSOQt8TDlaMlymSrTPmzr9pNAhf33S_-VeWzu6 ca5f4e4c4eb8842e56ac0841a2bf2786efb1eaae&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme
  • https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1836 ehq8D3qgKdPrRssnPNpwpc7clFIi1wqkTrdB9KWAWhNGP0QePZbdzoDDsjNA8nnC 5f600b7ac8711a76d7da7744b7d684f62dc6c38f&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme

3 thoughts on “Reverse Engineering Unity3D Files”

  1. It worked for an english file, but I when I tried a Japanese file, I got this:

    – signature of 8 bytes at offset 0x00000000 doesn’t match the one
    expected by the script:

    this one: “UnityRaw”
    55 6e 69 74 79 52 61 77 UnityRaw

    expected: “UnityWeb”
    55 6e 69 74 79 57 65 62 UnityWeb

    – 0 files found in 0 seconds
    coverage file 0 0% 8 41954956 . offset 00000008

    When I swapped “UnityRaw” with “UnityWeb” in the script, it came up with this:

    Error: the compressed LZMA input is wrong or incomplete (0)
    Info: algorithm 17
    offset 0000003c
    input size 0x00334658 3360344
    output size 0x00334658 3360344
    result 0xffffff9c -100

    Error: there is an error with the decompression
    the returned output size is negative (-100)

    Last script line before the error or that produced the error:
    31 clog MEMORY_FILE OFFSET ZSIZE SIZE

    Is there something else I need to change? I tried using the Unity script on aluigi’s site, but that gave me a bunch of files with numbers as extensions. The unity web player, of course, had the same error as the script you linked to.

    Is this something you’ve seen before? If you have any idea, I’d be very grateful to hear your input. From my understanding, the main program should work with Japanese characters, but I’m not sure about the individual scripts.

  2. You mentioned there are two ways for extracting the .assets files.

    Let’s say we got those files but there is no .unity3d file.
    What other options do we have left?

  3. my question is and sorry because im new on this reverse engineering i just wanna look on the scripts for some ui that i liked and i couldnt figure out how to do them and some other component my question is is it possible to look to the whole asset in unity and all the components also .

Leave a Reply

Your email address will not be published. Required fields are marked *