Change Log - - Version 5.27.0 - Release Date March 2017

This release ships with Microsoft Visual Studio 2017

Enhancements

  • Added a new Debugging Check feature. Dotfuscator can inject code into an application to detect and react to the presence of a managed debugger, at runtime. This feature can be configured by adding the DebuggingCheckAttribute on the Instrumentation screen or via in-code attributes. Telemetry can be enabled via the "Send Debug Check Messages" global option.
  • Added a new `Action` property to `DebuggingCheckAttribute` and `InsertTamperCheckAttribute` to control how an instrumented application will react to a detected Debugging Check or Tamper Check. There are two options in CE:
    • The default `None` action does nothing.
    • The `Exit` action causes the instrumented application to immediately exit.
  • Application Notification Sinks are now supported for Debugging and Tamper Checks. This allows custom code to run after those checks are performed.
  • A warning is displayed in the Build Output if an `InsertTamperCheckAttribute` (or `DebuggingCheckAttribute`) is configured to do nothing.
  • A warning is displayed in the Build Output if Dotfuscator will inject code into a constructor, which may cause runtime errors in certain scenarios.
  • Tamper (and Debugging Check) will now send telemetry even if Setup has not yet been called.
    • Shelf Life Check telemetry will still only send telemetry if Setup has already been called.
  • The installer now supports Visual Studio's new "low-impact installation model". Dotfuscator will be installed in the same location as other Visual Studio 2017 extensions.
  • Increased the level of obfuscation applied to the code Dotfuscator injects into assemblies.
  • Documentation updates:
    • Added a new HTML User Guide for use on preemptive.com
    • Updated documentation on Checks
    • Updated documentation on installing the product
    • Streamlined documentation hosted by Microsoft

Functional Changes

  • Projects are now automatically saved when a build is performed within the UI.
  • The sample project is no longer shipped with Dotfuscator CE. Instead, it can be downloaded separately from the "File" menu.
  • Help is no longer delivered with Dotfuscator CE. The HTML version of this documentation is now hosted on preemptive.com and can be accessed via the "Help" menu. The PDF version is no longer available.
  • The `DefaultAction` value for the `ApplicationNotificationSinkElement` property on an `InsertTamperCheckAttribute` is now deprecated. In order to retain the same behavior, please instead set the `ApplicationNotificationSinkElement` to `None` and set the new `Action` property to `Exit`.
  • The `/g` option is no longer available on dotfuscatorCLI.exe. If you want to run the Dotfuscator CE stand-alone UI, run `dotfuscator.exe`.
  • Assemblies within a package that were previously configured, but are now missing from the package, now appear in the Input GUI with a red exclamation point icon.
  • The email registration option has been removed. If you need to register without regular internet access, please contact support.

Fixes

  • Fixed some Xamarin-related issues by adding support for XAML 2009.
  • Artifacts within a package display their names, instead of their paths within the package (which is redundant with the tree structure they're placed in).
  • Assemblies within a package marked as artifacts appear appropriately in the "Package Artifacts" tree, instead of always at the root of that tree.
  • Added better handling for quoted PublicKey(s) and PublicKeyToken(s) in assemblies.
  • Prevented the commandline version of Dotfuscator (`dotfuscatorCLI.exe`) from displaying GUI dialogs.
  • Fixed various other minor bugs.