Quote:Original post by DaBookshah
Quote:Original post by NickGravelyn
All managed code is compiled into the CLR code which can be de-compiled. However I've read there are numerous obfuscators that take care of this problem for when you wish to ship the game.
You should either do things properly or not at all. There do exist decent protection packages/encrypters for .net programs (an obsfucator doesn't count).
Then go for not-at-all. Any code that ships in a format that can ultimately be executed can be decoded/decrypted. Unless the encryption keys are held by the processor, the binary can be opened in a debugger or disassembled. Once you have the ability to disassemble the loader, you can either decode or decrypt the package that the loader will process. Once you have the package in the clear, you can proceed with normal reverse engineering.
Beyond that, obfuscators will be enough of a PITA to stop someone who doesn't have the right tools, and if they do have the right tools, it will be moments (or occasionally hours) of aggravation. If you do have something innovative enough to present a challenge, you will only attract the more competent attackers as they pick your 'protection' system apart for the fun of it.
If you are that worried about protecting your intellectual property, save the money you would spend on technology, and spend it on good lawyers instead. Sue (or at least C&D) anyone who uses your IP, and if they are in the US, file a charge under the DMCA.