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
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 Crypto Obfuscator project and obfuscate them at
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. Does Crypto Obfuscator automatically obfuscate referenced assemblies?
No, Crypto Obfuscator obfuscates only those assemblies which you explicitly add to the Crypto Obfuscator project. So if you want to obfuscate referenced assemblies, make sure that you add them too.
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 add any runtime dependency to my dlls?
No, Crypto Obfuscator does not add any dependency whatsoever to your dlls.
The obfuscated dlls are the same in all respects of behavior, functionality
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 obfuscating ASP.Net
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, v4.0 as well as v5.0.
Q. Does Crypto Obfuscator support obfuscating .xap files?
Yes, Crypto Obfuscator can obfuscate assemblies in .xap files and produce
new .xap files with obfuscated assemblies.
Q. Does Crypto Obfuscator support Windows 8 Metro apps?
Yes, Crypto Obfuscator supports obfuscating Windows 8 Metro/WinRT apps.
Q. Does Crypto Obfuscator support Windows Phone 7/8 Series Apps?
Yes, Crypto Obfuscator supports apps developed using Silverlight/XNA for the
Windows Phone 7 Series as well as Windows Phone 8.
Q. Does Crypto Obfuscator support .Net Micro Framework Assemblies?
Yes, Crypto Obfuscator fully supports assemblies developed using .Net
Micro Framework 3.0 & 4.0.
Q. Does Crypto Obfuscator support components, controls and class
Yes, Be sure to specify 'Conservative' configuration when obfuscating such
assemblies so that public entities which are used externally are not renamed.
Q. Does Crypto Obfuscator support console applications?
Q. Does Crypto Obfuscator support satellite assemblies?
Yes, Crypto Obfuscator will automatically obfuscate 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 fully 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 obfuscated. Any new classes,
methods, etc are given obfuscated names different from already taken obfuscated
Q. Does Crypto Obfuscator support recovering the original stack
trace, watch variable names, etc once symbols are renamed?
Yes. Whenever assemblies are obfuscated, 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.5.
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 obfuscate assemblies built for all versions of the
Q. Are there special or additional system requirements to run
obfuscated versions of my .Net assemblies?
No. Crypto Obfuscator does not add any additional dependencies whatsoever.
Obfuscated 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, Windows 7 and Windows 8?
Yes. Crypto Obfuscator works 100% on Windows Vista, Windows 7 and Windows 8. Additionally,
assemblies obfuscated by Crypto Obfuscator will also run without problems
on these OSes provided of course that the original assemblies run on these
Q. Does Crypto Obfuscator support .Net Framework 4.5 and Visual
Yes, Crypto Obfuscator fully supports .Net Framework 4.5 and Visual Studio
Q. Does Crypto Obfuscator produce FIPS compilant assemblies?
Yes, no matter which obfuscations and settings you apply, all obfuscated assemblies are FIPS compliant.
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 pdb files?
Yes, Crypto Obfuscator can create a new pdb file corresponding to the
obfuscated assembly. This allows you to get source code file names and
line numbers in your stack traces. In addition, the source code file names
are obfuscated too, so you can distribute the pdb files along with your
obfuscated assemblies without revealing sensitive information.
Q. Does Crypto Obfuscator support controlling obfuscation via
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. Can Crypto Obfuscator do code signing of assemblies using
Yes, Crypto Obfuscator supports automatic code signing of obfuscated assemblies
using Authenticode certificates.
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 obfuscate assemblies.
It uses dedicated code to read, obfuscate and write .Net assemblies.
Q. Does Crypto Obfuscator use the original source code to do
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.
Q. Are there any royalties for distributing software protected
with Crypto Obfuscator?
No. There are no royalties, fees or charges of any kind for distributing
software protected with Crypto Obfuscator. You only need to buy one or
more developer licenses for Crypto Obfuscator depending on the number
of developers using Crypto Obfuscator.
Q. Do I need to include any license agreement or notices with
my software if it is protected with Crypto Obfuscator?