Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

How much can the user reconstruct / access from the build?

Discussion in 'Editor & General Support' started by StarvingIndieDeveloper, Jan 24, 2019.

  1. StarvingIndieDeveloper

    StarvingIndieDeveloper

    Joined:
    Aug 21, 2015
    Posts:
    274
    How likely is it that an end user can access assets such as 3D models from the build, and can they reconstruct or access the scene hierarchy? In previous forum notes, people have said that the end user can reconstruct source code from monodevelop CIL code and can partially reconstruct asset files, but I can't find any information about the scene hierarchy or graphics.
     
  2. bobisgod234

    bobisgod234

    Joined:
    Nov 15, 2016
    Posts:
    1,042
    Something like DevX can decompile a built Unity game into a usable Unity Editor project with a couple of clicks. Models, Scenes, prefabs, everything.
     
    Last edited: Jan 24, 2019
  3. StarvingIndieDeveloper

    StarvingIndieDeveloper

    Joined:
    Aug 21, 2015
    Posts:
    274
    But that must be only a loose approximation, just as decompiled source code isn't going to have a lot of the stuff that was in the original.
     
  4. bobisgod234

    bobisgod234

    Joined:
    Nov 15, 2016
    Posts:
    1,042
    Scenes and prefabs hierarchies are saved in a Unity build and can be recovered. It's all there.

    Your built Unity software is basically open source.

    You can download some of these tools (DevX trial, Unity Unpacker, UABE) and see for yourself. (On your own projects, obviously)
     
    Kiwasi likes this.
  5. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Think back to video protection. Ultimately it didn't matter how sophisticated protection got on the actual playback device. A person could just intercept the video signal once it got sent to the screen. At some point, video had to be decrypted to meet its intended function.

    3D models and textures are the same. At some point, you need to send the model to the graphics card. It doesn't matter how good your protection is up until that point, someone can just grab it on its way to the card. Models have to be decrypted to meet their intended function.
     
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,966
    You'd be surprised how close it is to the original. You won't have comments. You won't have original variable names. You won't have original function names. You'll have everything else. Unless you ran an obfuscator on your program the code generated will be very close to the original code.
     
  7. bobisgod234

    bobisgod234

    Joined:
    Nov 15, 2016
    Posts:
    1,042
    Methods and class fields will have their original name. Pretty much the only thing afaik that won't have it's original name are method scope variables.

    This makes it pretty much effortless to modify.
     
  8. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    And this is why, if it's really super-important, that games run on a server where you don't have any access to it, and what you use locally is basically a thin client. Otherwise don't worry about it. 100% of games that run locally can be hacked and assets extracted, usually without much effort.

    --Eric