The .NET Encryption shell protection provides a fast and easy way to
protect .NET applications. It uses a technique to encrypt the whole managed
assembly, and then creates a native executable that is composed of the loader
and the encrypted assembly. The loader functions to detect the Key and decrypt
the assembly at run time. It is reported that this method may cause a conflict
in a .NET application using the Assembly class, the Serialization or Attribute objects.
The following provides a guideline to help you avoid the conflict. So you can
integrate shell protection into your application successfully.
When it appears that the .NET Encryption shell protection causes an
exception in your application, follow the guideline below.
·
Try to avoid using the conflicted class or
object, or use an alternative method. See the known exceptions and resolution
below.
·
Consider to code part of your program causing
the conflict into a separate DLL. Then, you can integrate the shell protection
into the main program.
·
Alternatively, consider using the Instant KeyCheck
API or the KeyCheck
API, instead of the shell protection. In this case, you can also use the
API together with a .NET obfuscation tool to help increase the security of your
application.