PreEmptive Protection - Dotfuscator
Community Edition User Guide

Renaming Configuration

The Renaming screen is used to configure Dotfuscator's Renaming feature. You can access this screen in Dotfuscator Community Edition's navigation tree by selecting (Project Name) > Configuration Options > Renaming. This screen contains four tabs: an informational "Getting Started" tab and three tabs for configuring Renaming.

Getting Started Tab

This tab provides general information about Obfuscation and the Renaming feature.

Exclusions Tab

This tab allows you to exclude code items from renaming. This may be necessary when those code items are used by reflection, among other scenarios.

The tab is divided into two sections. The structure of your input assemblies is presented on the left section in a code tree; checkboxes in this view can be used to exclude specific items. You can also exclude items by using rules, which are configured in the right section's rule tree. Dotfuscator also has several built-in exclusion rules, which are configured from a separate tab.

Excluding Specific Items

To exclude a specific code item from renaming, navigate to the item in the code tree and check the checkbox to the left of the item. To undo this exclusion, uncheck the checkbox.

Elements which are already excluded by Declarative Obfuscation will be listed in blue text.

Important: An empty checkbox does not guarantee that the item will be renamed; it may still be excluded due to rules, built-in rules, Declarative Obfuscation, Library Mode, or Smart Obfuscation.

Excluding by Rules

You may also exclude code items from renaming by specifying rules for Dotfuscator to follow. For details on the various types of rules and how they are evaluated, see the Exclusion Rules section of the Renaming page.

Rules that have been added are displayed in the rule tree on the right side of the tab. Selecting a rule will allow you to edit its properties, which vary among rule types. If the Attribute specifier property is available, you may select a single option by clicking on it, or select/deselect multiple options by clicking while holding Ctrl.

To add a top-level rule, click either Add Namespace or Add Type as appropriate.

To add a sub-rule of an existing rule, right-click the rule and select Add Field, Add Method, Add Property, Add Event, Add Custom Attribute, or Add Supertype as appropriate.

To remove a rule, select it and click Delete.

You can preview what effect the rules would have on the code tree by clicking the Preview button; code items that will be excluded from renaming due to rules will be highlighted in yellow. You can also preview the effect of a specific rule (and its child rules) by right-clicking on it in the rule tree and selecting Preview.

Built-in Rules Tab

This tab allows you to enable or disable Dotfuscator's built-in exclusion rules.

Dotfuscator provides several rules that apply to common scenarios and frameworks. To toggle a rule on or off, click the rule. The checkbox to the left of the rule will be checked when the rule is enabled, and unchecked when the rule is disabled. When selected, the rule's description is also displayed.

Options Tab

This tab allows you to configure the renaming process at the project level.

Renaming options

In the Renaming options section, you may configure general behavior of the renaming process.

  • Enable renaming: Acts as a master switch for the entire renaming process. If checked, renaming will occur. If unchecked, no renaming will occur.

    • This setting can also be controlled by right-clicking on the Renaming node in the navigation tree, and checking or unchecking Enable.
  • Ensure compatibility with XML serializer: If enabled, renaming will ensure the output is compatible with XML serialization. If disabled, more aggressive renaming will take place.

  • Introduce explicit method overrides when renaming: If enabled, methods that override other methods may be renamed differently than the overridden method.

  • Namespace handling: Choose how namespaces are to be handled for renamed types.

    • "Flatten and rename": The namespaces will be removed entirely.

    • "Rename only": The namespaces will be renamed, preserving the hierarchy of namespaces.

    • "Preserve": The namespaces will not be renamed.

Enhanced Overload Induction, Renaming Prefixes, and Renaming schemes besides Lower Alpha are all exclusive to Dotfuscator Professional Edition.

Incremental obfuscation

Incremental obfuscation is exclusive to Dotfuscator Professional Edition.

Output map

The Output map section controls how the renaming map file is written during the build.

  • Output map file: Specifies the location and name of the map file.

  • Overwrite without backing up existing copy: If enabled, if the map file specified already exists, it will be deleted during the build. If disabled, the existing copy will be renamed instead.

Saving as HTML is exclusive to Dotfuscator Professional Edition.

Dotfuscator Version Copyright © 2017 PreEmptive Solutions, LLC