PreEmptive Protection - Dotfuscator 4.31
User Guide

Check Telemetry

Checks can be configured to send messages to a specified PreEmptive Analytics Endpoint when they detect invalid application states. This is called Check Telemetry.

Configuration

Provided you have configured Checks, Check Telemetry can be used alongside other features of Instrumentation or by itself.

In both cases, to enable Check Telemetry, enable one or more of the following injection options:

Note that Checks in general will only be injected if Enable Injection is enabled, so this setting must also be enabled for Check Telemetry messages to be transmitted.

Caution: Do not put the Check attributes on the same method containing the SetupAttribute. Methods with these attributes must be executed after the method containing the Setup Attribute.

With Instrumentation Telemetry

Assuming you have configured your application to track sessions, Check Telemetry messages will be sent as part of those sessions. Because these messages indicate unauthorized use of the application, they will be transmitted even if the user opts out of telemetry.

Without Instrumentation Telemetry

Check Telemetry can be used without transmitting any other telemetry. To do this, disable the Send Analytics Messages injection option.

However, Check Telemetry still requires the injected telemetry engine to be set up, so that it knows where to transmit the messages, and what Company and Application information to include in the transmission. Therefore, use of the following instrumentation attributes is still required for Check Telemetry, even though the code they inject will not transmit these attributes' corresponding messages:

Supported Application Types

Check Telemetry is supported in an assembly if:

  1. Instrumentation is supported for that assembly, and
  2. The Check is supported for that assembly:

Messages

Each type of Check generates a different type of message.

Tamper

Generated when a method annotated with TamperCheckAttribute starts and the injected Tamper Check detects that the assembly has been modified from its original form.

Includes the following data:

Debugger Detected (Fault)

Generated when a method annotated with DebuggingCheckAttribute starts and the injected Debug Check detects that a debugger is attached to the current process.

This is actually a fault message with a fixed exception type (com.preemptive.DebuggingCheck).

Includes the following data:

Application Expiry

Generated when a method annotated with ShelfLifeCheckAttribute starts and the injected Shelf Life Check detects that the application is being used after the Check's expiration date.

Includes the following data:

Dotfuscator Version 4.31.0.6091. Copyright © 2017 PreEmptive Solutions, LLC