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:
- A listing of the items excluded from renaming/removal due to Smart Obfuscation.
- 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: