Security Issue with C#
There is a security issue with C# in that it is almost tivial to reverse compile the executable back into source code. There are several tools on the net that will do this. This makes it completely unsuitable for commercial development where the value of the IP is a major concern.
And you felt it necessary to create a thread for this?
1) There are code obfuscators that make it very difficult to recover code that you can learn from.
2) All code can be reverse engineered. With CIL it's just a bit easier.
3) If you really have IP in your code that you feel is unsuitably protected by copyright laws, you can't distribute it to users. Make it a web service running on a server you control.
The client is in the hands of the enemy.
If you don't want parts of your code reverse engineered, don't give it away. That simple. And it's the same for any programming language. Is it easier with .NET ? Yes. But who cares. If it's worth being reverse engineered, it will be done, even if you write it in hand optimized and obfuscated ASM. Don't give users access to the parts you want to keep secret. In any language.
Sure why not. Its a concern. The fact is that C# is far easier than other languages to reverse engineer. Obfuscation can't be used for performance critical code, as it tends to muck up the optimizations.
Originally Posted by CornedBee
I like C# or .NET, but I'd go as far as saying C# can't be used for performance critical code. If you have super secret performance critical code, write a C/C++ DLL and put it on the server side.