title: Protect .NET code from reverse engineering?
body: <p>Obfuscation is one way, but it can't protect from breaking the piracy protection security of the application. How do I make sure that the application is not tampered with, and how do I make sure that the registration mechanism can't be reverse engineered?</p>
  
  <p>Also it is possible to convert a C# application to native code, and <a href="http://en.wikipedia.org/wiki/Spoon_%28software%29" rel="noreferrer">Xenocode</a> is too costly.</p>
  
  <p>C# provides lot of features, and is the ideal language for my code, so writing the whole codebase again in C++ is out of the question.</p>
  
  <p>Secure certificates can be easily removed from the signed assemblies in .NET.</p>