Dotfuscator Quick Start Guide

Smart Obfuscation Rules and Warnings

Smart Obfuscation is an ongoing effort to identify and apply obfuscation rules automatically for known API usage patterns and application types.

Smart Obfuscation Rules are a lot like Built-in Renaming Exclusion Rules, but for situations that cannot be described by simple regular expressions. The simplest example of this is the exclusion of enum members when Dotfuscator sees ToString() being called on one of them. If the user is calling ToString() on the enum member, then they probably want it to have the original name. There is no possible way to describe this situation using the Custom Rule Exclusion mechanism.

Smart Obfuscation produces two reports:

  1. A listing of the items excluded from renaming/removal due to Smart Obfuscation.
  2. A listing of items that Dotfuscator found, but could not resolve itself, that may indicate the need for manual exclusions.

There are many, many possible warnings. Here is just one example of such a warning:

FrameworkElementRule flagged something in Method Namespace.ContextMenu::void OnApplyTemplate() for the following reasons: Examine possible name arguments to System.Windows.FrameworkElement::FindName and manually exclude the referenced elements.

The user should simply follow the instructions: Find the ContextMenu class and look at the OnApplyTemplate() method. Find all places in that method that call FindName(string), and figure out if that string represents a Property from the input that needs to be manually excluded.

Learn more in the Dotfuscator User Guide:

Dotfuscator Version Copyright © 2017 PreEmptive Solutions, LLC