Skip to content

Add documentation on Dotfuscator CE #32

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 10, 2017
4 changes: 4 additions & 0 deletions docs/ide/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,10 @@
## [Troubleshooting the Help Viewer](troubleshooting-the-help-viewer.md)
## [Accessibility Features of the Help Viewer](accessibility-features-of-the-help-viewer.md)
### [Shortcut Keys (Help Viewer)](shortcut-keys-help-viewer.md)
# [Dotfuscator Community Edition (CE)](dotfuscator/index.md)
## [Capabilities of Dotfuscator](dotfuscator/capabilities.md)
## [Install Dotfuscator CE](dotfuscator/install.md)
## [Upgrade Dotfuscator CE](dotfuscator/upgrades.md)
# [Globalizing and Localizing Applications](globalizing-and-localizing-applications.md)
## [Introduction to International Applications Based on the .NET Framework](introduction-to-international-applications-based-on-the-dotnet-framework.md)
## [Localizing Applications](localizing-applications.md)
Expand Down
108 changes: 108 additions & 0 deletions docs/ide/dotfuscator/capabilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: "Capabilities of Dotfuscator | Microsoft Docs"
ms.date: "2017-02-08"
ms.prod: "visual-studio-dev15"
ms.devlang: "dotnet"
ms.technology:
- "dotfuscator"
ms.topic: "article"
keywords: Dotfuscator, Dotfuscator CE, PreEmptive, PreEmptive Solutions, PreEmptive Protection, protection, community edition, obfuscation, .NET, free, Visual Studio 2017
helpviewer_keywords:
- "PreEmptive Protection - Dotfuscator"
- "Dotfuscator Community Edition"
- "Dotfuscator CE"
- "Dotfuscator"
- "obfuscation"
- "protection"
description: "Learn the capabilities of the free Dotfuscator Community Edition included in Visual Studio 2017."
ms.assetid: 0ee89c58-c900-48fc-a6a2-65ace00e8bab
author: "Joe-Sewell-PreEmptive"
manager: "ghogen"
translation.priority.ht:
- "cs-cz"
- "de-de"
- "es-es"
- "fr-fr"
- "it-it"
- "ja-jp"
- "ko-kr"
- "pl-pl"
- "pt-br"
- "ru-ru"
- "tr-tr"
- "zh-cn"
- "zh-tw"
---

# Capabilities of Dotfuscator

This page focuses on the capabilities of Dotfuscator Community Edition (Dotfuscator CE) with some references to advanced options available through [upgrades][upgrades].

Dotfuscator is a *post-build* system for .NET applications.
With Dotfuscator CE, Visual Studio users are able to [obfuscate assemblies][obfuscation] and inject [active defense][checks] and [analytics tracking][analytics] into the application – all without Dotfuscator needing to access the original source code.
Dotfuscator protects your application in multiple ways, creating a layered protection strategy.

Dotfuscator CE supports a wide range of .NET assembly and application types, including [Universal Windows Platform (UWP)][uwp] and [Xamarin][xamarin].

## Intellectual Property Protection

Your application's design, behavior, and implementation are forms of intellectual property (IP).
However, applications created for the .NET Framework are essentially open books; it's very easy to reverse engineer .NET assemblies, [as they contain high-level metadata and intermediate code][assemblies].

Dotfuscator CE includes basic [.NET obfuscation][obfuscation] in the form of [renaming][renaming].
Obfuscating your code with Dotfuscator reduces the risk of unauthorized access to source code through reverse engineering, as important naming information will no longer be public.
Obfuscation also shows effort on your part to protect your code from examination - a valuable step in establishing that your IP is legally protected as trade secret.

Many of the [application integrity protection features](#application-integrity-protection) of Dotfuscator CE further hinder reverse engineering.
For instance, a bad actor may attempt to attach a debugger to a running instance of your application in order to understand the program logic.
Dotfuscator can inject [anti-debug behavior][debug] into your application to obstruct this.

## Application Integrity Protection

In addition to protecting your source code, it's also important to ensure your application is used as designed.
Attackers can attempt to hijack your application in order to circumvent licensing policies (i.e., software piracy), to steal or manipulate sensitive data handled by the application, or to change the behavior of the application.

Dotfuscator CE can inject [application validation code][checks] into your assemblies,
including [anti-tamper][tamper] and [anti-debug][debug] measures.
When an invalid application state is detected, the validation code can [call upon application code to address to the situation in an appropriate way][check-app].
Or, if you prefer not to write code to handle invalid uses of the application, Dotfuscator can also inject [telemetry reporting][check-telemetry] and [response][check-action] behaviors, without requiring any modification to your source code.

Many of these same methods may also be used to enforce [end-of-life deadlines][shelflife] for evaluation or trial software.

## Application Monitoring

When developing an application, it is critical to understand the behavior patterns of users, including beta testers and users of prior versions.
Application analytics allows you to track how frequently the application is used and how it is used, including what errors customers experience.

Dotfuscator CE can inject [exception-tracking][exceptions], [session-tracking][sessions], and [feature-tracking][features] code into your application.
When run, the processed application will transmit analytics data to a configured [PreEmptive Analytics endpoint][endpoints].

## See Also

[This topic in the full Dotfuscator CE User Guide][full]

[assemblies]: https://docs.microsoft.com/en-us/dotnet/articles/standard/assembly-format
[uwp]: https://www.preemptive.com/blog/article/856-uwp-applications-in-dotfuscator-ce/91-dotfuscator-ce
[xamarin]: https://www.preemptive.com/obfuscating-xamarin-with-dotfuscator

[upgrades]: upgrades.md

[obfuscation]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/obfuscation_overview.html
[renaming]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/obfuscation_renaming.html

[analytics]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_overview.html
[endpoints]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_overview.html#endpoints

[checks]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_overview.html
[check-app]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_overview.html#app-notification
[check-action]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_overview.html#action

[tamper]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_tamper.html
[debug]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_debug.html
[shelflife]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_shelflife.html
[exceptions]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_exceptions.html
[sessions]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_sessions.html
[features]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_features.html
[check-telemetry]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_checks.html

[full]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/intro_capabilities.html
119 changes: 119 additions & 0 deletions docs/ide/dotfuscator/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
---
title: "Dotfuscator Community Edition (CE) | Microsoft Docs"
ms.date: "2017-02-08"
ms.prod: "visual-studio-dev15"
ms.devlang: "dotnet"
ms.technology:
- "dotfuscator"
ms.topic: "article"
keywords: Dotfuscator, Dotfuscator CE, PreEmptive, PreEmptive Solutions, PreEmptive Protection, protection, community edition, obfuscation, .NET, free, Visual Studio 2017
helpviewer_keywords:
- "PreEmptive Protection - Dotfuscator"
- "Dotfuscator Community Edition"
- "Dotfuscator CE"
- "Dotfuscator"
- "obfuscation"
- "protection"
description: "Learn how you can protect your .NET applications with the free Dotfuscator Community Edition included in Visual Studio 2017."
ms.assetid: d9550502-0a82-49a6-b005-2caa791fbe02
author: "Joe-Sewell-PreEmptive"
manager: "ghogen"
translation.priority.ht:
- "cs-cz"
- "de-de"
- "es-es"
- "fr-fr"
- "it-it"
- "ja-jp"
- "ko-kr"
- "pl-pl"
- "pt-br"
- "ru-ru"
- "tr-tr"
- "zh-cn"
- "zh-tw"
---

# Dotfuscator Community Edition (CE)

*PreEmptive Protection – Dotfuscator* provides comprehensive .NET application protection that easily fits into your secure software development lifecycle.
Use it to harden, protect, and prune desktop, mobile, server, and embedded applications to help secure trade secrets and other intellectual property (IP), reduce piracy and counterfeiting, and protect against tampering and unauthorized debugging.
Dotfuscator works on compiled assemblies without the need for additional programming or even access to source code.

## Why Protection Matters

It's important to **protect your intellectual property** (IP).
Your application's code contains design and implementation details which can be considered IP.
However, applications built on the .NET Framework [contain significant metadata and high-level intermediate code][assemblies], making them very easy to reverse engineer, just by using one of many free, automated tools.
By disrupting and stopping reverse-engineering, you can prevent unauthorized IP disclosure, as well as demonstrate that your code contains trade secrets.
Dotfuscator can [obfuscate][obfuscation] your .NET assemblies to hinder reverse-engineering, while maintaining original application behavior.

It's also important to **protect the integrity of your application**.
In addition to reverse-engineering, bad actors may attempt to pirate your application, alter the application's behavior at runtime, or manipulate data.
Dotfuscator can inject your application with the capability to [detect, report, and respond to unauthorized uses][checks], including tampering and third-party debugging.

For more information on how Dotfuscator fits into a secure software development lifecycle, see PreEmptive Solutions' [SDL App Protection page][sdl-protection].

## About Dotfuscator CE

Your copy of Microsoft Visual Studio 2017 includes a free license for ***PreEmptive Protection - Dotfuscator* Community Edition**, also known as Dotfuscator CE.
For instructions on how to install the version of Dotfuscator CE included with Visual Studio 2017, see the [Installation page][install].

Dotfuscator CE offers a range of [software protection and hardening][software-protection] services for developers, architects and testers.
Examples of [.NET Obfuscation][obfuscation] and other [Application Protection][app-protection] features included in Dotfuscator CE are:

* *[Renaming][renaming]* of identifiers to make reverse-engineering of the compiled assemblies more difficult.
* *[Anti-tamper][tamper]* to detect the execution of tampered applications, transmit incident alerts, and terminate tampered sessions.
* *[Anti-debug][debug]* to detect the attachment of a debugger to a running application, transmit incident alerts, and terminate debugged sessions.
* *[Application expiration behaviors][shelflife]* that encode an "end-of-life" date, transmit alerts when applications are executed after their expiration date, and terminate expired application sessions.
* *[Exception tracking][exceptions]* to monitor unhandled exceptions occurring within the application.
* *[Session][sessions] and [feature][features] usage tracking* to determine what applications have been executed, what versions of those applications, and what features are used in those applications.

For details on these features, including how they fit into your application protection strategy, see the [Capabilities page][capabilities].

Dotfuscator CE offers basic protection out-of-the-box.
Even more application protection measures are available to registered users of Dotfuscator CE,
and to users of *PreEmptive Protection - Dotfuscator* Professional Edition, the world's leading [.NET Obfuscator][net-obfuscator].
For information about enhancing Dotfuscator, see the [Upgrades page][upgrades].

## Getting Started

To begin using Dotfuscator CE from Visual Studio, type `dotfuscator` into the **Quick Launch** (Ctrl+Q) search bar.

* If Dotfuscator CE is already installed, this will bring up the *Menu* option to start the Dotfuscator CE user interface. For details, see [the Getting Started page of the full Dotfuscator CE User Guide][get-started].
* If Dotfuscator CE is not yet installed, this will bring up the relevant *Install* option. See the [Installation page][install] for details.

You can also get the **latest version** of Dotfuscator CE from [the Dotfuscator Downloads page on preemptive.com][download].

## Full Documentation

This page and its sub-pages provide a high-level overview of Dotfuscator CE's features, as well as [instructions for installing the tool][install].

Please see [the full Dotfuscator CE User Guide at preemptive.com][full] for detailed usage instructions, including [how to start using the Dotfuscator CE user interface][get-started].

[assemblies]: https://docs.microsoft.com/en-us/dotnet/articles/standard/assembly-format
[software-protection]: https://www.preemptive.com/software-protection
[obfuscation]: https://www.preemptive.com/obfuscation
[app-protection]: https://www.preemptive.com/application-protection
[sdl-protection]: https://www.preemptive.com/solutions/SDL-App-Protection
[net-obfuscator]: https://www.preemptive.com/products/dotfuscator/overview
[download]: https://www.preemptive.com/products/dotfuscator/downloads

[install]: install.md
[capabilities]: capabilities.md
[upgrades]: upgrades.md

[get-started]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/gui_getstarted.html

[renaming]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/obfuscation_renaming.html

[checks]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_overview.html
[tamper]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_tamper.html
[debug]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_debug.html
[shelflife]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/checks_shelflife.html

[exceptions]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_exceptions.html
[sessions]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_sessions.html
[features]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/analytics_features.html

[full]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/index.html
94 changes: 94 additions & 0 deletions docs/ide/dotfuscator/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: "Install Dotfuscator Community Edition (CE) | Microsoft Docs"
ms.date: "2017-02-08"
ms.prod: "visual-studio-dev15"
ms.devlang: "dotnet"
ms.technology:
- "dotfuscator"
ms.topic: "article"
keywords: Dotfuscator, Dotfuscator CE, PreEmptive, PreEmptive Solutions, PreEmptive Protection, protection, community edition, obfuscation, .NET, free, Visual Studio 2017, install
helpviewer_keywords:
- "PreEmptive Protection - Dotfuscator"
- "Dotfuscator Community Edition"
- "Dotfuscator CE"
- "Dotfuscator"
- "obfuscation"
- "protection"
- "Dotfuscator installer"
- "Dotfuscator setup"
- "install Dotfuscator"
- "installing Dotfuscator"
- "set up Dotfuscator"
description: "Learn how to install the free Dotfuscator Community Edition included in Visual Studio 2017."
ms.assetid: f2146651-e24a-4e24-ade8-8ddee8ff4e43
author: "Joe-Sewell-PreEmptive"
manager: "ghogen"
translation.priority.ht:
- "cs-cz"
- "de-de"
- "es-es"
- "fr-fr"
- "it-it"
- "ja-jp"
- "ko-kr"
- "pl-pl"
- "pt-br"
- "ru-ru"
- "tr-tr"
- "zh-cn"
- "zh-tw"
---

# Install Dotfuscator Community Edition (CE)

Visual Studio 2017 introduces a new low-impact installation experience.
As a result, Dotfuscator Community Edition (Dotfuscator CE) is not installed by default.
However, it is easy to install Dotfuscator CE even if you have already installed Visual Studio.

> [!NOTE]
> In addition to the versions of Dotfuscator CE shipped with releases of Visual Studio,
> PreEmptive Solutions also periodically provides updated versions on its website.
> If you want to download the **latest version** directly instead of installing from Visual Studio,
> **[click here to go to the Dotfuscator Downloads page][download]**.

## Within Visual Studio

You can install Dotfuscator CE from the Visual Studio IDE:

1. In the **Quick Launch** (Ctrl+Q) search bar, type `dotfuscator`. <br/> <br/> ![](media/install_from_vs_12.png) <br/> <br/>
2. In the Quick Launch results shown, under the *Install* heading, select **PreEmptive Protection - Dotfuscator (Individual Component)**.
* If you instead see, under the *Menus* heading, **Tools → PreEmptive Protection - Dotfuscator**, then Dotfuscator CE is already installed. For usage details, see [the Getting Started page of the full Dotfuscator CE User Guide][get-started].
3. A Visual Studio Installer window will launch, pre-configured with to install Dotfuscator CE.
* You may be required to provide administrator credentials to continue.
4. Close all instances of the Visual Studio IDE. <br/> <br/> ![](media/install_from_vs_345.png) <br/> <br/>
5. In the Visual Studio Installer window, click *Install*.

Once the installation is complete, you can start using Dotfuscator CE. For details, see [the Getting Started page of the full Dotfuscator CE User Guide][get-started].

## During Visual Studio Installation

If you have not yet installed Visual Studio 2017, you can obtain the installer from [the Visual Studio website][2017-install].
When run, it will display installation options for the selected Visual Studio edition.

![](media/install_ui.png)

You can then install Dotfuscator CE as an individual component of Visual Studio 2017:

1. Select the **Individual components** tab.
2. Under *Code tools*, check the *PreEmptive Protection - Dotfuscator* item.<br/> <br/> ![](media/install_individually_12.png) <br/> <br/>
3. The *Summary* panel displays *PreEmptive Protection - Dotfuscator* under the *Individual Components* section. <br/> <br/> ![](media/install_individually_3.png) <br/> <br/>
4. Configure any further installation settings as appropriate for your environment.
5. When ready to install Visual Studio, click the *Install* button.

Once the installation is complete, you can start using Dotfuscator CE. For details, see [the Getting Started page of the full Dotfuscator CE User Guide][get-started].

## See Also

[This topic in the full Dotfuscator CE User Guide][full]

[2017-install]: https://www.visualstudio.com/downloads/#vs-2017
[get-started]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/gui_getstarted.html

[download]: https://www.preemptive.com/products/dotfuscator/downloads

[full]: https://www.preemptive.com/dotfuscator/ce/docs/help/5.27/intro_install.html
Binary file added docs/ide/dotfuscator/media/install_from_vs_12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/ide/dotfuscator/media/install_ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading