Home of Shell MegaPack : Windows Explorer-Like File & Folder Browser Controls & Components For .Net & ActiveX

Crypto Obfuscator For .Net FAQ 

Q. WHy do I need Crypto Obfuscator to protect my .Net assemblies.
Most non-.Net compilers emit binary programs containing native CPU instructions which are very hard to disassemble, decompile and reverse-engineer. However, all .Net compilers such as C#, VB.Net, Managed C++, IronPyhton, etc emit compiled programs in MSIL (Microsoft Intermediate Language) format. This format preserves a lot of high-level information about your software such as class, field, method, property and parameter names and even the actual code in a well-defined structure. This has facilitated the development of many decompilers and dissassemblers which can extract this information from a .Net assembly. Some tools can even reconstruct the actual structure of your code including loops, if statements, method calls, etc. Needless to say, this means that an unprotected .Net assembly is an easy target for hackers, crackers or competitors who can easily reverse-engineer your .Net code from the compiled assembly. They can easily glean valuable trade secrets, algorithms, sensitive information such as passwords, SQL queries, etc stored in strings, or even try to find security vulnerabilities and change product functionality.

Q. How will Crypto Obfuscator help me protect my .Net assemblies.
Crypto Obfuscator is a powerful and easy-to-use product for code protection, deployment and optimization of your your .Net software.

Code & Intellectual Property Protection -
Crypto Obfuscator uses advanced code protection and obfuscation techniques to prevent hackers, crackers or competitors from reverse-engineering, decompiling or disassembling your assemblies.
Improved and Simplified Deployment -
Crypto Obfuscator can integrate all dependant assemblies and any additional assemblies into a single main assembly. It can also encrypt and compress them to improve protection and reduce the size of your deployment.
Optimization -
Crypto Obfuscator optimizes the performance of your .Net assembly by eliminating a variety of unnecessary and redundant information. It will also compress assembly resources and any dependant assemblies to significantly reduce the total size of your software. Finally it also performs certain code level optimizations to improve the run-time performance of your software.

Q. How will I benefit from using Crypto Obfuscator to protect my .Net assemblies?
Protecting your .Net assemblies with Crypto Obfuscator helps you to:

  • Protect your intellectual property from hackers, crackers or competitors and increases the ROI for your business.
  • Save time and money spent handling deployment related issues by simplifying, optimizing and improving the deployment of your software.
  • Improve the performance of your application.
  • Build a fast, light-weight and robust application.

Q. Does Crypto Obfuscator support multi-assembly applications?
Yes. In fact, if your application is divided into multiple assemblies, it is necessary to add all of them to the project and process them at once.
Crypto Obfuscator also supports embedding, encrypting and compressing dependant assemblies into the main assembly of your software. This improves the protection and reduces the size of your software.

Q. Will Crypto Obfuscator affect the performance of my software?
Protecting your assemblies with Crypto Obfuscator should not cause any slowdown. In fact, some settings like 'Reduce MetaData', 'Mark Classes As Sealed', using the short-name renaming scheme, resource compression & assembly compression will often increase the execution speed and/or loading time of your software.

Q. Does Crypto Obfuscator support Smart Device/Windows Mobile/Pocket PC assemblies developed using .Net Compact Framework?
Yes, Crypto Obfuscator fully supports such assemblies.

Q. Does Crypto Obfuscator support ASP.Net applications?
Yes. Be sure to specify 'Conservative' configuration when processing ASP.Net code-behind assemblies.

Q.Does Crypto Obfuscator support WPF applications?
Yes. Additionally, the 'Resource Protection and Encryption' feature of Crypto Obfuscator will help you to protect the resources containing the baml files that WPF applications typically have.

Q. Does Crypto Obfuscator support Silverlight assemblies?
Yes, Crypto Obfuscator fully supports Silverlight assemblies using Silverlight v2.0, v3.0 as well as v4.0.

Q. Does Crypto Obfuscator support components, controls and class libraries?
Yes, Be sure to specify 'Conservative' configuration when processing such assemblies so that public entities which are used externally are not renamed.

Q. Does Crypto Obfuscator support console applications?
Absolutely!

Q. Does Crypto Obfuscator support satellite assemblies?
Yes, Crypto Obfuscator will automatically process all satellite assemblies (if any) associated with the obfuscated assemblies.

Q. Does Crypto Obfuscator support LINQ to SQL?
Yes, Crypto Obfuscator has full support for assemblies using LINQ to SQL and understands the rules needed to obfuscate such assemblies..

Q. Does Crypto Obfuscator support SQL CLR assemblies?
Yes, Crypto Obfuscator fully supports SQL CLR assemblies and understands the rules needed to obfuscate such assemblies.

Q. Does Crypto Obfuscator support XNA assemblies?
Yes, Crypto Obfuscator sully supports assemblies build for the XNA framework.

Q. Does Crypto Obfuscator support incremental obfuscation?
Yes. Select the 'Cryptographic Renaming' scheme for this. Incremental obfuscation ensures that existing classes, methods, etc are given the same obfuscated name every time assemblies are processed. Any new classes, methods, etc are given obfuscated names different from already taken obfuscated names.

Q. Does Crypto Obfuscator support recovering the original stack trace, watch variable names, etc once symbols are renamed?
Yes. Whenever assemblies are processed, Crypto Obfuscator generates a mapping file which maps original names to new names. To recover the original stack trace, use Project menu --> Stack Trace Deobfuscator.

Q. Does Crypto Obfuscator support all versions of the .Net framework?
Yes. Crypto Obfuscator can protect any .Net assembly right from those built for .Net Framework 1.0 to those built for .Net Framework 4.0.

Q. What are the system requirements to run Crypto Obfuscator?
Crypto Obfuscator requires .Net Framework 2.0 or higher to run. However, as noted above, it can process assemblies built for all versions of the .Net framework.

Q. Are there special or additional system requirements to run protected versions of my .Net assemblies?
No. Crypto Obfuscator does not add any additional dependencies whatsoever. Processed assemblies run on the same version of the .Net framework that they are originally built for.

Q. Can Crypto Obfuscator be run from the command line?
Yes. The command line interface can be used to integrate Crypto Obfuscator into your build system.

Q. Does Crypto Obfuscator support Windows Vista and Windows 7?
Yes. Crypto Obfuscator works 100% on Windows Vista and Windows 7. Additionally, assemblies processed by Crypto Obfuscator will also run without problems on these OSes provided of course that the original assemblies run on these OSes.

Q. Does Crypto Obfuscator support .Net Framework 4.0 and VIsual Studio 2010?
Yes, Crypto Obfuscator fully supports .Net Framework 4.0 and Visual Studio 2010.

Q. Does Crypto Obfuscator support obfuscating my projects directly from Visual Studio?
Yes, obfuscation and protection can be integrated in the Visual Studio IDE using either build events or MSBuild. See the topic "Visual Studio Integration Using.." in the help file.

Q. Does Crypto Obfuscator support MSBuild?
Yes, see above question.

Q. Does Crypto Obfuscator support ClickOnce integration?
Yes, see above question.

Q. Does Crypto Obfuscator support controlling obfuscation via code attributes?
Yes, Crypto Obfuscator supports excluding/including entities from renaming, control flow obfuscation, string encryption, etc using code attributes.

Q. Can Crypto Obfuscator resign obfuscated assemblies automatically?
Yes, Crypto Obfuscator will automatically resign obfuscated assemblies using specified snk file or a password protected pfx file.

Q. Does Crypto Obfuscator support signing obfuscated assemblies with password protected pfx files?
Yes, see above question.

Q. Does Crypto Obfuscator use IL round-tripping to do its processing?
No. Crypto Obfuscator does not use ILDASM or ILASM to process assemblies. It uses dedicated code to read, process and write .Net assemblies.

Q. Does Crypto Obfuscator use the original source code to do its processing?
No. Crypto Obfuscator uses the compiled exe or dll files only. The original source code is not used and is not needed.

Q. My protected assembly does not run. What should I do?
See "Troubleshooting Protected Assemblies" topic in the help file for the most common issues and their solutions.

Q. Some classes/methods/fields, etc are not renamed. Why?
Are you using 'Conservative' obfuscation type? In this mode, only non-public items are renamed. If your assembly is not intended to be used by external assemblies (which is the case with most exe assemblies), you should set obfuscation type to 'Aggressive'.
Crypto Obfuscator will also automatically exclude from obfuscation items based on various rules, such as application settings class, or classes marked with the Serialization attribute, etc.