DeployLX Software Protection System

ProtectAssembly Compile Time Attribute

Defines general assembly wide protection settings.

ProtectAssembly Attribute

The ProtectAssembly attribute can be applied only at the assembly level.

Properties

ObfuscateEverythingTypes

A ObfuscateEverythingTypes value indicating the types of method calls that should be disguised with Obfuscate Everything Protection.

None

Don't disguise any calls.

External

Disguise calls to external assemblies such as system libraries and third party components.

Obfuscated

Disguise calls to methods within the assembly that have already been obfuscated.

Unobfuscated

Disguise calls to methods within the assembly that have not been obfuscated.

Generics

Disguise calls to generic methods.

All

Disguise all calls.

ObfuscateSerializableTypes

A SerializableDefault value indicating how private serializable types should be handled.

ISerializableAllowed

Obfuscate serializable types only if they implement ISerializable.

Allowed

Obfuscate any serializable type.

NotAllowed

Don't obfuscate serializable types.

ObfuscatePrivateNamespaces

When all of types in a given namespace have been renamed, selecting this option will rename the namespace as well.

GenerateExceptionMap

Exception Translation generates a mapping file to help DeployLX CodeVeil convert obfuscated stack traces back to their original names.

NamingScheme

A NamingScheme value that indicates the obfuscation renaming scheme to use. One of Ascii, Collapsed or Hashed.

IncludeDiagnosticInfo

Useful for troubleshooting, selecting this option will prefix renamed methods with their original names. For example DoSomething() becomes ##DoSomething##_A().

EnableStringEncryption

Enables string encryption for the assembly.

EnableCodeEncryption

Enables code encryption for the assembly.

Example Usage

<Attribute:ProtectAssembly(EnableCodeEncryption:=True,_
                           GenerateExceptionMap:=True,_
                           NamingScheme:=NamingScheme.Hashed)>
[assembly: ProtectAssembly( EnableCodeEncryption=true, 
                            GenerateExceptionMap=true, 
                            NamingScheme = NamingScheme.Hashed )]

DontProtectAssembly Attribute

Excludes the assembly from veiling. The assembly can still be added to a CodeVeil project, but it will only be used for dependency analysis and will not be mofidied.

Example Usage

<Attribute:DontProtectAssembly()>
[assembly: DontProtectAssembly]

See Also