À propos de Dotfuscator Community &Visual Studio

Protection préEmptive - Dotfuscator fournit une protection complète des applications .NET qui s’intègre facilement à votre cycle de vie de développement logiciel sécurisé. Utilisez-la pour renforcer, protéger et supprimer les applications de bureau, mobiles, serveur et incorporées pour sécuriser les secrets commerciaux et d’autres propriétés intellectuelles (IP), réduire le piratage et la contrefaçon, et protéger contre la falsification et le débogage non autorisé. Dotfuscator fonctionne sur des assemblys compilés sans avoir besoin de plus de programmation ou même d’accès au code source.

Protection Prémptive - Dotfuscator

Pourquoi la protection est importante

Il est important de protéger votre propriété intellectuelle (IP). Le code de votre application contient des détails de conception et d’implémentation, qui peuvent être considérés comme IP. Toutefois, les applications basées sur le .NET Framework contiennent des métadonnées significatives et du code intermédiaire de haut niveau, ce qui les rend faciles à rétroconcevoir, juste en utilisant l’un des nombreux outils automatisés gratuits. En perturbant et en arrêtant l’ingénierie inversée, vous pouvez empêcher la divulgation d’adresses IP non autorisées et démontrer que votre code contient des secrets commerciaux. Dotfuscator peut obfusquer vos assemblys .NET pour empêcher l’ingénierie inverse, tout en conservant le comportement de l’application d’origine.

Il est également important de protéger l’intégrité de votre application. En plus de l’ingénierie inverse, les acteurs malveillants peuvent tenter de pirater votre application, de modifier le comportement de l’application au moment de l’exécution ou de manipuler des données. Dotfuscator peut doter votre application de la capacité à détecter et à répondre à des utilisations non autorisées, notamment la falsification, le débogage tiers et les appareils débridés.

Pour plus d’informations sur la façon dont Dotfuscator s’intègre dans un cycle de vie de développement logiciel sécurisé, consultez la page SDL App Protection de PreEmptive Solutions.

À propos de Dotfuscator Community

Votre copie de Microsoft Visual Studio inclut une copie de PreEmptive Protection - Dotfuscator Community, gratuite pour une utilisation personnelle. (Cette version gratuite était précédemment appelée Dotfuscator Community Edition ou Dotfuscator CE.)

Pour obtenir des instructions sur l’installation de la version de Dotfuscator Community incluse dans Visual Studio, consultez la page Installation.

Dotfuscator Community offre une gamme de services de protection logicielle et de renforcement pour les développeurs, les architectes et les testeurs. Voici quelques exemples d’obfuscation .NET et d’autres fonctionnalités de protection des applications incluses dans dotfuscator Community :

  • Renommage des identificateurs pour rendre l’ingénierie inverse des assemblées compilées plus difficile à réaliser.
  • Anti-falsification pour détecter l’exécution des applications falsifiées et arrêter ou répondre aux sessions falsifiées.
  • Anti-débogage pour détecter la pièce jointe d’un débogueur à une application en cours d’exécution et arrêter ou répondre aux sessions déboguées.
  • Appareil anti-rooté pour détecter si l’application s’exécute sur un appareil Android rooté et arrêter ou répondre aux sessions sur ces appareils.
  • Comportements d’expiration d’application qui encodent une date de fin de vie et terminent les sessions d’application expirées.

Dotfuscator Community offre une protection de base prête à l’emploi. Encore plus de mesures de protection des applications sont disponibles pour les utilisateurs inscrits de Dotfuscator Community et pour les utilisateurs de PreEmptive Protection - Dotfuscator Professional, le principal obfuscateur .NET au monde.

Premiers pas

Pour commencer à utiliser Dotfuscator Community depuis Visual Studio, tapez dotfuscator dans la zone de recherche (Ctrl+Q).

  • Si Dotfuscator Community est déjà installé, la zone de recherche affiche l’option permettant de démarrer Dotfuscator Community sous l’en-tête Menus . Pour plus d’informations, consultez la page Prise en main du Guide complet de l’utilisateur de la communauté Dotfuscator.
  • Si Dotfuscator Community n’est pas encore installé, la zone de recherche affiche à la place Install PreEmptive Protection - Dotfuscator sous l’en-tête Composants individuels . Pour plus d’informations , consultez la page Installation.

Vous pouvez également obtenir la dernière version de Dotfuscator Community à partir de la page Téléchargements Dotfuscator sur preemptive.com.

Mise à jour à partir de Dotfuscator Community 5

Découvrez comment effectuer une mise à niveau vers PreEmptive Protection - Dotfuscator Community 6.

Selon l’historique d’installation et la version de Visual Studio, vous exécutez peut-être Dotfuscator Community 5, la version principale précédente. Si c’est le cas, vous devez effectuer une mise à niveau, car il est important de vous assurer que votre code reçoit les dernières mesures de protection. Les mises à niveau sont disponibles sans frais.

Cet article explique comment déterminer la version que vous avez actuellement, comment effectuer une mise à niveau vers la version 6 si nécessaire, et quelles fonctionnalités ont été remplacées ou supprimées entre les deux versions.

Déterminer la version de Dotfuscator

Si vous ne savez pas quelle version de Dotfuscator vous exécutez, vous pouvez déterminer la version en effectuant l’une des options suivantes :

  • Lancez l’interface utilisateur graphique Dotfuscator Community en accédant au menu Outils de Visual Studio et en sélectionnant PreEmptive Protection - Dotfuscator Community.

    Dans l’interface utilisateur Dotfuscator, ouvrez le menu Aide, puis sélectionnez À propos... pour afficher l’écran À propos.

    Cet écran répertorie la version de Dotfuscator.

  • Si Dotfuscator est intégré à votre build avec l'interface de ligne de commande, vous pouvez également vérifier vos journaux de build pour une ligne comme dans l'exemple suivant :

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Vous devrez peut-être augmenter la verbosité de votre build pour voir ce texte. Pour Visual Studio, consultez Paramètres de verbosité.

Le premier entier de la version, avant le premier point ., indique la version principale de Dotfuscator. Si le premier entier est 5, vous devez effectuer les étapes de mise à niveau sur cette page afin que vous puissiez tirer parti des dernières fonctionnalités dotfuscator 6 et mises à jour de protection.

Instructions de mise à niveau

Cette section inclut des ensembles d’instructions pour la mise à niveau des utilisations classiques de Dotfuscator Community de la version 5 à la version 6.

Installer Dotfuscator 6

Dotfuscator Community est distribué en tant qu’extension pour Visual Studio. Les instructions d’installation de Dotfuscator 6 varient selon la version de Visual Studio dont vous disposez :

  • Visual Studio 2022 Dotfuscator Community 6 est inclus dans Visual Studio 2022.

  • Visual Studio 2019 Dotfuscator Community 6 est inclus dans les versions ultérieures de Visual Studio 2019 (version 16.10.0 et ultérieure). Mettez à jour Visual Studio 2019 vers la dernière version. La mise à jour de Visual Studio met automatiquement à niveau toute installation Dotfuscator Community 5 vers Dotfuscator Community 6.

    • Si dotfuscator n’est pas déjà installé, mettez à jour Visual Studio en premier, puis consultez Installation.

    • Outre les versions avec Visual Studio, vous pouvez toujours obtenir les dernières versions de Dotfuscator Community à partir de la page Téléchargements Dotfuscator .

  • Visual Studio 2017 Cette version de Visual Studio est fournie uniquement avec Dotfuscator Community 5. Toutefois, vous pouvez installer ou mettre à niveau vers Dotfuscator Community 6 en accédant à la page Téléchargements Dotfuscator et en sélectionnant le lien de téléchargement approprié.

    Exécutez le fichier téléchargé .vsix et suivez les invites pour installer Dotfuscator Community 6 dans Visual Studio. Les installations dotfuscator Community 5 existantes sont également mises à niveau.

  • Versions antérieures de Visual Studio Dotfuscator Community 6 n’est pas pris en charge dans ces versions de Visual Studio. Nous vous recommandons de procéder à une mise à niveau vers une version plus récente de Visual Studio ou de passer de Dotfuscator Community à Dotfuscator Professional.

Si vous aviez précédemment inscrit Dotfuscator Community 5, cette inscription est automatiquement convertie la première fois que vous exécutez Dotfuscator Community 6.

Mettre à jour les chemins d’accès à l’interface CLI

Si vous avez précédemment utilisé l’interface de ligne de commande (CLI) de Dotfuscator 5 pour protéger votre application, vous devez mettre à jour le chemin d’accès à l’interface CLI dans tous les projets et générer des scripts qui le référencent.

La raison pour laquelle un chemin d’accès à l’interface CLI de Dotfuscator peut désormais être incorrect, car les noms de certains exécutables installés avec Dotfuscator Community ont changé dans Dotfuscator 6. Cette modification rend ces noms exécutables identiques entre Dotfuscator Community et Dotfuscator Professional.

Exécutable pour... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Note

Le chemin de l’interface CLI peut également ne pas être valide si vous effectuez une mise à niveau entre les versions principales de Visual Studio ou si vous changez d’éditions de Visual Studio, car l’interface CLI Dotfuscator est installée sous le répertoire d’installation de Visual Studio. Les symptômes et la solution répertoriés ci-dessous s’appliquent également à ce scénario.

Si votre build utilise un chemin d’accès CLI Dotfuscator non valide, vous pouvez obtenir des erreurs telles que l’un des exemples suivants :

'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.

The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.

Pour mettre à jour votre build afin d’utiliser le chemin d’accès CLI approprié :

  1. Démarrez l’interface graphique utilisateur de la communauté Dotfuscator en accédant au menu Outils de Visual Studio et en sélectionnant Protection preEmptive - Dotfuscator Community.

  2. Dans l'interface utilisateur de la communauté Dotfuscator, accédez au menu Outils et sélectionnez Invite de commandes Dotfuscator.

  3. Dans l’invite de commandes qui s’ouvre, tapez where dotfuscator.exe. Copiez le premier chemin d’accès affiché dans un document de texte brut pour référence ultérieure. Ce chemin est le nouveau chemin d’accès à l’interface CLI de Dotfuscator Community 6.

  4. Ouvrez le projet ou la configuration de construction conforme à votre système de construction.

    • Pour les projets Visual Studio, ouvrez le fichier projet (.csprojou .vbproj.fsproj) en texte brut. Ouvrez un fichier projet dans Visual Studio.
  5. Localisez tous les emplacements dans votre projet ou configuration de build où un ancien chemin d’accès à l’interface CLI de Dotfuscator Community 5 est utilisé. Il s’agit généralement d’un chemin se terminant par dotfuscatorCLI.exe.

  6. Remplacez les anciens chemins situés à l’étape 5 par le nouveau chemin que vous avez noté à l’étape 3.

    Si l’un des anciens chemins n’est pas un chemin absolu, vous devez ajuster le nouveau chemin de manière appropriée en fonction du contexte. Dans l’exemple ci-dessous, la VSInstallDir variable d’environnement a été utilisée dans l’ancien chemin, de sorte que le nouveau chemin correspondant doit faire de même.

    • Nouveau chemin de l'étape 3 : C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Ancien chemin d’accès dans le fichier projet : %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Nouveau chemin d’accès dans le fichier projet : %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Si vous utilisez un système de contrôle de code source, tel que Git, vérifiez que les modifications de l’étape 6 sont reflétées dans ce système. Distribuez ces modifications au reste de votre équipe, car cela peut être approprié pour votre système et votre organisation.

Avertissement

Étant donné que dotfuscator.exe fait référence à l’interface utilisateur graphique (GUI) dans Dotfuscator 5, mais fait référence à l’interface de ligne de commande (CLI) dans Dotfuscator 6, veillez à mettre à jour les scripts de build partagés sur plusieurs machines.

Une machine ayant Dotfuscator 5 installé exécute un script mis à jour pour Dotfuscator 6 et cela entraîne l'ouverture de l'interface utilisateur graphique, au lieu de l'interface en ligne de commande prévue. Cela peut entraîner la réussite de la build malgré l’application de la protection de Dotfuscator, ce qui signifie que vos packages de sortie ne seront PAS protégés.

Dans d'autres cas, cela peut causer un échec de compilation.

Pour éviter ces scénarios, mettez à niveau Dotfuscator Community de la version 5 vers la version 6 de tous vos ordinateurs et générez des scripts en même temps.

Mettre à niveau les fichiers de configuration Dotfuscator

Tous Les fichiers de configuration Dotfuscator (par exemple Dotfuscator.xml) créés avant Dotfuscator 6 doivent être mis à niveau.

Si vous essayez d’exécuter l’interface CLI Dotfuscator avec un ancien fichier de configuration, vous obtenez des erreurs comme les exemples suivants :

Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.

Important

Vous recevez cette erreur et devez mettre à niveau votre fichier de configuration même si vous n’utilisiez pas les fonctionnalités mentionnées.

Pour mettre à niveau un fichier de configuration :

  1. Lancez l’interface utilisateur graphique Dotfuscator Community en accédant au menu Outils de Visual Studio et en sélectionnant PreEmptive Protection - Dotfuscator Community.

  2. Ouvrez le fichier de configuration Dotfuscator en question (Ctrl+O).

  3. Le message suivant s’affiche sous l’onglet Sortie de build :

    PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.

  4. Enregistrez le fichier de configuration Dotfuscator mis à jour (Ctrl+S).

  5. Si vous utilisez un système de contrôle de code source, tel que Git, vérifiez que les modifications apportées au fichier de configuration Dotfuscator sont reflétées dans ce système. Distribuez ces modifications au reste de votre équipe, car cela peut être approprié pour votre système et votre organisation.

Mettre à jour les références aux bibliothèques d’attributs

Dotfuscator vous permet de configurer certaines fonctionnalités via des attributs .NET dans votre code source. Si vos projets utilisaient ces attributs, vous devrez peut-être les mettre à jour pour résoudre les modifications apportées à Dotfuscator 6.

Attributs d’obfuscation

Aucune modification n’a été apportée aux attributs d’obfuscation. Ces attributs sont définis dans les bibliothèques de classes de base .NET, et Dotfuscator Community 6 continue de les honorer.

Vérifier les attributs

La bibliothèque contenant les attributs Check a changé. Dans Dotfuscator Community 5, il a été distribué en tant que fichier avec Dotfuscator lui-même. À compter de Dotfuscator Community 6, il est disponible en tant que package NuGet public.

Si vous essayez de générer un projet Visual Studio qui fait toujours référence à l’ancien emplacement, vous pouvez rencontrer des erreurs telles que les exemples suivants :

The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)

Vous pouvez également recevoir cet avertissement :

Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Pour mettre à jour votre projet afin d’utiliser le nouvel emplacement :

  1. Supprimez la référence d’assembly du projet à PreEmptive.Attributes.dll.

  2. Ajoutez la référence PreEmptive.Protection.Checks.Attributes du package NuGet au projet. Le package est disponible sur le flux NuGet par défaut, nuget.org.

Les paramètres de chaque attribut de contrôle ExtendedKey ont également été supprimés. Ces paramètres ont été ignorés dans Dotfuscator Community 5, mais si votre code source les a utilisés indépendamment, supprimez ces utilisations pour que votre projet soit compilé.

Attributs d’instrumentation

Les attributs d’instrumentation ont été utilisés pour configurer la fonctionnalité PreEmptive Analytics dans Dotfuscator 5. Toutefois, PreEmptive Analytics a été supprimé dans Dotfuscator 6 ; consultez la sous-section De fonctionnalité supprimée PreEmptive Analytics. Par conséquent, les attributs d’instrumentation ont également été supprimés.

Si vous essayez de générer un projet Visual Studio qui a utilisé des attributs d’instrumentation, vous pouvez obtenir les mêmes types d’erreurs et d’avertissements que ceux indiqués dans Check Attributes, bien que les noms d’attributs diffèrent (par exemple, FeatureAttribute au lieu de TamperCheckAttribute).

Si vous essayez d’exécuter Dotfuscator sur des assemblys déjà intégrés qui contiennent des utilisations d’attributs d’instrumentation, vous obtenez des erreurs comme les exemples suivants :

The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.

Pour résoudre ces problèmes, supprimez toutes les utilisations des attributs d’instrumentation de votre code source. Vous devez également supprimer les références d’assembly à la bibliothèque qui ont défini les attributs. PreEmptive.Attributes.dll (Si vous utilisiez également les attributs Check qui ont été définis dans cette bibliothèque, ils ont été déplacés ; consultez Vérifier les attributs ci-dessus.)

Fonctionnalités supprimées

Dotfuscator Community 6 introduit des changements cassants de Dotfuscator Community 5. Si vous avez effectué une mise à niveau à partir de Dotfuscator Community 5, cette section décrit comment gérer les modifications susceptibles de nécessiter des modifications de build ou affecter la sortie de Dotfuscator.

Une liste complète des modifications est disponible dans le journal des modifications.

PréEmptive Analytics

Dotfuscator 6 ne prend pas en charge PreEmptive Analytics, y compris Check Telemetry. Toutefois, les vérifications elles-mêmes (y compris les actions de notification d’application et de vérification) sont toujours prises en charge.

Pour utiliser Dotfuscator 6, mettez à niveau votre fichier de configuration pour supprimer les paramètres PreEmptive Analytics.

Si vous utilisiez des attributs dans le code pour configurer PreEmptive Analytics, supprimez-les de votre code source et régénérez vos assemblys d’entrée avant que Dotfuscator 6 puisse protéger ces assemblys.

Si vous utilisiez Check Telemetry pour signaler lorsqu’une vérification détecte un état non valide (par exemple, lorsque la falsification est détectée), vous pouvez la remplacer par une notification d’application personnalisée qui signale l’incident à Azure Application Insights ou à un autre service de votre choix.

Types d’applications non pris en charge

Les types d’application suivants ne sont plus pris en charge dans Dotfuscator 6 :

  • Windows Phone
  • WinRT (apps Windows 8)
  • Silverlight
  • Unity (moteur de jeu)
  • Plateforme Windows universelle (UWP)

Pour protéger d’autres types d’applications UWP, effectuez une mise à niveau vers Dotfuscator Professional et suivez les instructions de protection de votre application .

Entrées non prises en charge

Dotfuscator Community ne prend plus en charge les packages de plateforme Windows universelle (UWP) .appx en tant qu’entrées. Pour protéger les applications UWP, effectuez une mise à niveau vers Dotfuscator Professional et suivez les instructions de protection de votre application .

En outre, .xap les packages ne peuvent plus être utilisés comme entrées, car Silverlight n’est plus pris en charge.

Introduire des remplacements de méthode explicites

L’option Renommer pour introduire des remplacements de méthode explicites a été supprimée de Dotfuscator. Pour utiliser Dotfuscator 6, mettez à niveau votre fichier de configuration pour supprimer ce paramètre.

Documentation complète

Consultez le guide complet de l’utilisateur dotfuscator Community à preemptive.com pour obtenir des instructions d’utilisation détaillées, notamment la façon de commencer à utiliser l’interface utilisateur dotfuscator Community.