On Wed, 09 May 2007 13:13:47 -0700, <ew******@gmail.comwrote:
It seems that C#.Net is not especially secure. What I mean is that if
I were to write an application in C# and then try to sell this
application, someone else could just come along and decompile it and
steal my code. Am I missing something here or is this the way that
the .Net framework actually is? Is there no solution to this?
There's obuscation tools that make it harder to do what you're talking
about. However, even with them, if someone wants to reverse engineer your
code, they can. More importantly, even if you compile your code straight
to machine code, it is not secure. It may take a little more work, but it
is possible to reverse compiled machine code and there are even tools
available to help someone do that. Even with optimizations, one can
reverse the process of compilation and get back to something reasonably
usable.
Basically, if you write software and you let anyone else use it, then
anyone using it has the ability to get back to your original algorithms
and design. It may be slightly easier with .NET applications, but no
software is immune and it really just comes down to how valuable your code
is. If your code is particularly useful, no amount of protection will
prevent it from eventually being reverse engineered. Conversely, if your
code isn't unique or difficult to reproduce, you could publish the
original source code and still not have to worry too much about other
people using it.
In other words, whether your code gets reused (whether with your
permission or not) has more to do with how useful the code is than whether
you've obfuscated it somehow.
Pete