I know you probably only get emails when people have problems, so I want
to make sure that I take the time to tell you how much I love this product
and how much it has enhanced my web-based application."

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 Crypto Obfuscator project and obfuscate 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. 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. Will assemblies obfuscated by Crypto Obfuscator be uncrackable? Can you guarantee that?
No, we cannot guarantee that. No matter what scheme is used, there is always a chance that it may be cracked - a 100% uncrackable scheme does not exist. If some company says their scheme is uncrackable, they are lying or ignorant. Your aim should not be to find an uncrackable system, but to use a system which offers reasonably strong protection, is easy to use, has good support and is reasonably priced.

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
and dependencies.

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 components, controls and class
libraries?
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 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
names.

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.1.

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
.Net framework.

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
OSes.

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 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 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
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.

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?
Absolutely not!