PreEmptive Protection - Dotfuscator
Community Edition User Guide

Analytics Configuration

The Analytics screen is used to configure Dotfuscator's code injection - namely, its Checks feature and its Analytics feature. You can access this screen in Dotfuscator Community Edition's navigation tree by selecting (Project Name) > Configuration Options > Analytics. This screen contains three tabs: an informational "Getting Started" tab and two tabs for configuring Checks and Analytics.

Getting Started Tab

This tab provides general information about Checks and Analytics.

Attributes Tab

This tab allows you to view and configure attributes used for code injection.

The tab is divided into two sections. The left side presents the structure of your input assemblies in a code tree, including any code injection attributes. Selecting such an attribute will display the attribute's properties in the right side of the tab, allowing for configuration of the selected attribute.

Adding Attributes from the GUI

In addition to specifying attributes in your source code, you may also add attributes to your project from the Dotfuscator Community Edition (Dotfuscator CE) GUI. These attributes will be saved in the Dotfuscator project file, not your source code. These attributes are known as extended attributes.

To add an extended attribute to a Dotfuscator project:

  1. In the code tree, select the assembly or method that you wish to annotate.

  2. Right-click the selected item and choose Add Attribute.

  3. Select the appropriate attribute from the list of available attributes and click OK.

  4. The extended attribute is added as a child of the item, listed in blue text. Expand the item's subtree and select the newly-added attribute.

  5. The right side of the tab now displays the properties of the attribute. You may edit properties that are recognized by Dotfuscator Community Edition; properties exclusive to Dotfuscator Professional Edition are grayed out.

For instance, a BusinessAttribute can be added to an assembly by right-clicking the assembly in the left-hand side tree view, selecting Add Attribute, and choosing PreEmptive.Analytics.BusinessAttribute. The attribute's CompanyName property can be configured by selecting the attribute in the tree view, then modifying the CompanyName entry in the right-hand side property view.

You can remove an extended attribute from the project by right-clicking on the attribute in the code tree and choosing Remove Attribute.

Working with In-Code Attributes

The Attributes tab also displays instrumentation attributes specified in your source code. When working with these in-code attributes, there are a few things to keep in mind:

  • In-code attributes will be displayed in the code tree in black text. Extended attributes will be displayed in blue text.

  • You can override an in-code attribute with an extended attribute. Dotfuscator will then ignore the in-code attribute and not display it in the code tree. The extended attribute will be used instead. Overriding happens when either of the following occurs:

    • You edit the properties of an in-code attribute via the GUI. Because Dotfuscator does not access the source code, this causes an extended attribute to be created with the changed values.

    • You add an extended attribute to an assembly or method that already has an in-code attribute of the same type.

  • If you remove an extended attribute that was overriding an in-code attribute, the in-code attribute will once again take effect.

  • You cannot remove in-code attributes using the Dotfuscator CE GUI. If you wish to remove such an attribute, you must remove it from the source code itself.

Property Utilities

Modifying properties of attributes is usually straightforward; the supported fields will accept free text (for String properties), provide a drop-down list of supported values (for enumeration properties), or provide a date picker (for date properties).

However, some properties, when selected, will also display a "..." icon. Clicking it will provide additional functionality for filling the field.

Endpoint Selection Dialog

On the StaticEndpoint property of a SetupAttribute, clicking the "..." icon will open the following dialog:

From here, you can choose of PreEmptive Solutions' predefined endpoints or specify your own URL.

Owner Type Selection Dialog

On various SourceOwner and SinkOwner properties, clicking the "..." icon will open the following dialog:

From here, you can choose which type the property will reference.

GUID Generator

On various Guid properties and the CompanyKey property of a BusinessAttribute, clicking the "..." icon will generate a new GUID for the property.

Browse Dialog

On the ActivationKeyFile property of an InsertShelfLifeAttribute or InsertSignOfLifeAttribute, clicking the "..." icon will allow you to browse to and select a shelflife Activation Key.

Options Tab

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

There are several options available:

  • Process PreEmptive analytics attributes: Acts as a master switch for the entire injection process. If checked, injection will be performed as specified by the configured attributes. If unchecked, no injection of any kind will occur.

    • This setting can also be controlled by right-clicking on the Analytics node in the navigation tree, and checking or unchecking Enable.

    • Even if injection is disabled, any in-code Check or Analytics attributes will be removed from the processed assemblies. This behavior is controlled by each input's Strip instrumentation attributes option, which cannot be disabled in Community Edition.

  • Send application analytics messages: Enables the injected app to transmit messaging related to Analytics.

    • This setting must be enabled in order to track sessions, features, and exceptions.

    • If you want to only use Analytics attributes for the purpose of setting Analytics up for Check Telemetry, you may disable this option.

  • Send debug check messages: Enables the injected app to transmit Check Telemetry from Debugging Checks.

    • If disabled, Debugging Checks and their associated Check Actions still occur.
  • Send shelf life notification messages: Enables the injected app to transmit Check Telemetry from Shelf Life Checks.

  • Send tamper check messages: Enables the injected app to transmit Check Telemetry from Tamper Checks.

    • If disabled, Tamper Checks and their associated Check Actions still occur.
  • Embed the analytics library in an output assembly: Causes classes required for Analytics to be injected into an existing input assembly, rather than being put into a separate assembly.

    • Cannot be disabled in Community Edition.
  • Analytics Version: Determines the internal API used for injection. Normally you should not have to adjust this setting from the default provided, unless directed by PreEmptive Solutions support.

Dotfuscator Version Copyright © 2017 PreEmptive Solutions, LLC