Advertisement

How can I share a .exe game?

Started by May 04, 2016 10:46 PM
8 comments, last by Brain 8 years, 7 months ago

I have been learning a bit of coding and some stuff this year and I'm doing some little shitty games with Xamarin Studio, using SFML, in c#.

So my question is, how I can share my games hidding the code ? I use to put a lot of easter eggs and i don't want people finding in the code.

You could use an obfuscator to make decompiling slightly more of a hassle.

https://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET
Advertisement

While obfuscators and other tools can make it more difficult, if someone truly wants to dig through the executable they can do it. Even if you use the best DRM and game-locking technology out there today it can still be defeated if someone wants to see inside. Ultimately the player needs to access what is inside the binary.

If you want something not released, the only reliable answer is to not include it.

That can mean conditionally compiling the code so it is not included, or it can mean removing the source files so they are not included in the build. Either way, that means making sure whatever it is won't be there to be found in the first place no matter how hard they search.

Thanks a lot gor both answers!! :)

You can't. Highly trained reverse-engineering would get your "easter eggs" fairly easy.

Obfuscator could result in a good protected code but for some degree.

You still can't hide asembly code.

To protect your content from beeing seen you also could encrypt it. This is done by AAA games for example The Elder Scrolls Online or The Devision because they want to protect there content from beeing modded in online play.

Content is in most games shipped in packages that are also compressed to reduce the size. Because those packages are loaded from Harddrive or Network, there isnt anything important that may not be encrypted/decrypted that otherwise could crash the runtime of your game. Also most packages are signed by the vendor to verify that content wasnt modified.

You could use this for your easter eggs too so that getting them from code isnt possible that easy and until someone cracks your code there will be more people that did find these easter eggs and told to others so they werent secret anymore anyways.

Advertisement

Encryption means really nothing. Ultimately, if you need to show or run it, your local computer needs to be able to decrypt it before use, which means the decryption keys must be available too at the same local computer. In other words, you'll have to send the keys of the door along or you won't be able to use or show the house.

That means any dedicated person is going to be able to decrypt it as well.

Given enough users, there is going to be at least one such dedicated person.

As frob said, the only really secure way is to not give the secret stuff away at all. You can't reverse engineer what is not there.

Maybe you can process the secret/sensitive stuff on a server, so you don't need to show it to the user at all.

Yeah, that would be what you do. Keep the easter egg and other private stuff stored in a database encoded. In your game you have the algorithm to decode it. That means anyone trying to find it, won't be able to, they will have to find the algorithm and packet sniffers and much more.

It's not worth your time or money doing any advanced obfuscation.

You can keep 99.9% of users out by zipping your file, changing the first two bytes from PK to FU, and changing the files extension to .pak

It's hardly rocket science but it will keep away casual browsers. If someone's determined to find your easter eggs they will and if they're technically minded you're fighting a losing battle.

Good luck!

This topic is closed to new replies.

Advertisement