Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Voting for the Unity Awards are OPEN! We’re looking to celebrate creators across games, industry, film, and many more categories. Cast your vote now for all categories
    Dismiss Notice
  3. Dismiss Notice

How i can protect own game from decompile

Discussion in 'Scripting' started by Norvegat147, Feb 5, 2018.

  1. Norvegat147

    Norvegat147

    Joined:
    Nov 5, 2016
    Posts:
    15
    Hello there,
    today i found this tools who can decompile unity3d
    tools : http://devxdevelopment.com/

    this is so sad how we can protect our game from this ?
     
  2. Malleck666

    Malleck666

    Joined:
    Jan 9, 2015
    Posts:
    235
    On the page you have linked, there is an obfuscation package...
     
  3. McDev02

    McDev02

    Joined:
    Nov 22, 2010
    Posts:
    661
    Wow I didn't know that. I knew how to use ILSpy to convert some dll but this is insane. You can just make your game open source, there barely is any difference. I will certainly look into how to prevent this, at least there are ways.
     
  4. Suddoha

    Suddoha

    Joined:
    Nov 9, 2013
    Posts:
    2,824
    @Both of you... Don't spend too much time on it.

    This is a common thing people are always concerned about. It has actually been discussed alot of times on these forums, in other forums, all over the internet and in every branch of the software industry. And the software industry has invested millions and millions to find ways to prevent this.

    You cannot completely avoid it. Someone's gonna find a way and publish it, if it's worth the effort.
    That's how it is.

    Therefore you shouldn't care too much about it and should not invest too much time or money in it. You can make it more difficult, but like mentioned above, there'll always be reverse engineering of assemblies / projects.
     
    TaleOf4Gamers and Kiwasi like this.
  5. McDev02

    McDev02

    Joined:
    Nov 22, 2010
    Posts:
    661
    It's just that I had a totally different understanding of how compilation works. I know it is a runtime environment but that you get scripts that are 95% the same is crazy. If you look at compressed JS code that is certainly not readable anymore, i just thought this is something you would get by default. But well stuff like reflection and SendMessage() wouldn't work then but I don't use that anyway.

    At least now I know not to put any sensitive information in code. I actually thought I might store a key that is used for encryption, now I can forget that because you could find it anyway.
     
  6. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,033
    That's something you never do, no matter how obfuscated your code is. If your app has the keys the users have the keys. The only undecryptable files are the ones you haven't sent the keys to.

    Keys can be sniffed out through external tools, either live or offline. Passwords are smaller targets, but have patterns which are easy to find even if you somehow obfuscate them. If the program can decode it, a dedicated user can too. Even secret keys for online stuff can be as easily found as a public website is through a search engine with an ethernet debugger.

    For anything private you should rely on accounts and existing OS crypto. Passwords should be locked in the system's key store, network-communicated private information should be passed through secure connections (SSL/TLS) protected via user accounts, and REALLY secret stuff should at least use client certificates as keys instead of passwords.

    But if you want to hide something from a user, don't give it to them :)