Dotfuscator User's Guide
Input Assembly Properties

In Visual Studio, every input assembly exposes properties to the properties window. To bring up the properties window for an input assembly, select the input assembly node under your Dotfuscator project in Solution Explorer, then launch Visual Studio’s properties window (from the View menu or using F4). You can manage properties for multiple input assemblies by selecting multiple input assemblies; the properties exposed in the properties window apply to the group of selected assemblies.

From here, for each assembly you can set library mode, set the Transform XAML mode, mark if it should be obfuscated or left as a package artifact, and you can configure Declarative Obfuscation via the Honor Obfuscation Attributes and Strip Obfuscation Attributes properties.

You can also set instrumentation options for selected assemblies. Specifically, you can select whether you would like Dotfuscator to honor instrumentation attributes for selected assemblies, and whether you would like Dotfuscator to strip these attributes from the output assembly. See Configuring and Running Dotfuscator with Application Analytics for details.

In addition, there are read-only properties that display information about the input assembly’s file.

 

In the Dotfuscator section of the Properties panel, you may set the following to True or False:

Artifact: Setting the Artifact to True tells Dotfuscator to not process the specified assembly as an input.  It will not be obfuscated or instrumented and all existing signatures will be preserved.  Setting the Artifact to False will cause Dotfuscator to process the assembly as an input for obfuscation and instrumentation.

Honor Instrumentation Attributes: Setting Honor instrumentation attributes to True tells Dotfuscator to process these attributes and perform the indicated instrumentation transformations on the target assembly. Setting this option to False tells Dotfuscator to ignore any instrumentation attributes.

Instrumentation attributes are custom attributes that can be applied in your source code to track application stability, features, usage, and to add shelf life functionality.

Honor Obfuscation Attributes: The default setting of Honor obfuscation attributes is True, which tells Dotfuscator to process these attributes and perform the indicated obfuscation transformations on the target assembly. Setting this option to False tells Dotfuscator to ignore any obfuscation attributes.

Obfuscation attributes are custom attributes that can be applied in your source code to explicitly declare the inclusion or exclusion of types, methods, enums, interfaces, or members from various types of obfuscation.  The attribute you would use to include or exclude types, methods, enums, interfaces, and members from obfuscation is System.Reflection.ObfuscationAttribute.  If you want to denote that a specific assembly will have its items included or excluded from obfuscation, you would use System.Reflection.ObfuscateAssemblyAttribute.

Key Output: This setting allows you to explicitly set one of the Dotfuscator project’s input assemblies to be the key output assembly. The key output is consumed by deployment projects. If assembly linking is enabled, a linked output assembly will be the key output if one of its source assemblies was marked as the key output. If no input assembly is marked as the key output, Dotfuscator will choose one.

tells Dotfuscator to leave the attributes in the output assembly unless the individual attributes designate that they should be stripped via the StripAfterObfuscation property.

Strip obfuscation Attributes: Dotfuscator can strip out all of the obfuscation attributes when processing is complete, so output assemblies will not contain clues about how it was obfuscated. Selecting this option tells Dotfuscator to remove these attributes from the target output assembly. De-selecting this option tells Dotfuscator to leave the attributes in the output assembly unless the individual attributes designate that they should be stripped via the StripAfterObfuscation property.

Transform XAML: Dotfuscator can rename items in XAML resources as used in Silverlight applications as well as the compiled XAML resources (BAML) of Windows Presentation Foundation applications.  The default value is True, which tells Dotfuscator to attempt to rename items in the markup resources and match the renaming to the items references in the code-behind.  Leaving this option enabled significantly strengthens the obfuscation of Windows Presentation Foundation and Silverlight applications as well as decreasing the number of items that must be manually excluded from renaming.


 

 

 


© 2016 PreEmptive Solutions, LLC. All Rights Reserved.

www.preemptive.com