Partager via


Démarrage rapide de l'interface GUI autonome

Cette section vous indique comment utiliser l'interface GUI autonome de Dotfuscator. Pour un guide complet de l'interface utilisateur de Dotfuscator, consultez le Guide de référence de l'interface GUI.

Étape 1 - Lancement de l'interface GUI de Dotfuscator

  • Cliquez sur Démarrer | Programmes | PreEmptive Solutions | Dotfuscator Professional Edition 4.0 | Dotfuscator.
  • La boîte de dialogue À propos de Dotfuscator Professional s'affiche. Cliquez ou appuyez sur n'importe quelle touche pour continuer ou attendez 5 secondes.

Étape 2 - Création d'un projet par défaut

  • Sélectionnez Créer un nouveau projet et cliquez sur OK. La fenêtre principale du projet Dotfuscator s'affiche avec l'onglet Entrée sélectionné.
  • C'est ici que vous sélectionnez l'assembly à obfusquer.
  • Cliquez sur Parcourir.
  • Recherchez :
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\bin\Debug 
  • et sélectionnez GettingStarted.exe.
  • Cliquez sur Ouvrir. Le chemin d'accès du fichier exécutable est maintenant affiché dans la zone de liste située sous Fichiers d'entrée.
  • Sélectionnez Fichier | Enregistrer le projet afin d'enregistrer le projet.
  • Dans la boîte de dialogue Enregistrer le projet, naviguez vers :
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\
  • Dans le champ de nom de fichier, entrez « Dotfuscator.xml » et cliquez sur Enregistrer.

Étape 3 - Génération du projet

  • Cliquez sur l'onglet Générer. Le répertoire de destination est renseigné par défaut comme suit : ${configdir}\Dotfuscated. Remarque : ${configdir} est une variable qui contient le chemin d'accès à votre fichier de configuration Dotfuscator.
  • À présent, le projet est prêt à être obfusqué. Cliquez sur Générer. Patientez quelques instants, le temps que Dotfuscator génère une version obfusquée de l'application HelloWorld. L'assembly obfusqué est désormais stocké dans :
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\Dotfuscated

Vous pouvez maintenant accéder à l'onglet Sortie et parcourir les symboles obfusqués ou examiner le fichier de mappage d'attribution d'un nouveau nom (map.xml) que Dotfuscator a créé dans le répertoire de sortie ; vous pouvez même exécuter l'application obfusquée si vous le souhaitez. Prête à l'emploi et moyennant une configuration minime, votre application a été obfusquée avec succès.

Dès lors, avec une configuration un peu plus poussée, nous pouvons utiliser certaines fonctionnalités plus puissantes de Dotfuscator.

Étape 4 - Configuration du projet

  • Cliquez sur l'onglet Options.
  • Affectez la valeur Commentaires à la propriété Progression de la génération. Cela oblige Dotfuscator à fournir des informations supplémentaires sur sa progression durant l'exécution, au bas de l'onglet Générer.
  • Affectez la valeur Oui à Émettre des symboles de débogage. La définition de cette propriété indique à Dotfuscator de créer un fichier de symboles au format PDB pour chaque assembly de sortie. Les débogueurs peuvent ensuite utiliser ces fichiers pour fournir des informations utiles au cours d'une session de débogage. En général, ces fichiers contiennent des informations telles que les numéros de ligne, les noms des fichiers sources et les noms des variables locales. Les fichiers PDB sont placés dans le répertoire de sortie avec les assemblys de sortie.
  • Affectez la valeur Non à Désactiver l'attribution d'un nouveau nom, Désactiver le flux de contrôle, Désactiver le chiffrement de chaînes et Désactiver la suppression. Vous pouvez contrôler de manière précise les transformations que Dotfuscator applique à vos assemblys ; ce sont les fonctionnalités que nous allons configurer et utiliser au cours des prochaines étapes.
  • Cliquez sur l'onglet Renommer. L'attribution d'un nouveau nom entrave la compréhension du code en renommant les méthodes et les champs à l'aide de noms n'ayant pas de signification. Cette fonctionnalité est activée par défaut ; les éléments doivent être sélectionnés pour pouvoir être exclus du processus d'attribution d'un nouveau nom. Pour cette application, vous n'avez pas besoin d'exclure d'éléments.
  • Cliquez sur l'onglet Définir les options d'attribution d'un nouveau nom. Activez la case à cocher Utiliser la méthode Overload Induction améliorée. Cette fonctionnalité permet jusqu'à 15 % de redondance supplémentaire dans l'attribution d'un nouveau nom aux méthodes et aux champs. Dans la mesure où la surcharge sur le type de retour d'une méthode ou le type d'un champ n'est généralement pas autorisée dans les langages sources (tels que C# et VB), il s'agit d'un handicap supplémentaire pour les décompilateurs.
  • Notez que la zone de texte Mapper le fichier de sortie prend par défaut la valeur suivante : ${configdir}\Dotfuscated\Map.xml
  • Activez la case à cocher Sortie au format HTML pour obtenir un rapport utile qui contient des informations sur l'attribution d'un nouveau nom et des statistiques relatives à l'application. La sortie de ce rapport s'effectuera dans le même répertoire que le fichier de mappage. L'emplacement par défaut est ${configdir}\Dotfuscated\Map.html.
  • Cliquez sur l'onglet Flux de contrôle. L'obfuscation du flux de contrôle synthétise les constructions conditionnelles, itératives et de branchement (par exemple if, for et while) afin de générer une logique exécutable valide, mais des résultats sémantiques non déterministes en cas de tentative de décompilation. En d'autres termes, le code s'exécute comme avant, mais les décompilateurs ne peuvent pas reproduire le code d'origine.
  • Cliquez sur l'onglet Chiffrement de chaînes. Le chiffrement de chaînes brouille les chaînes de votre application. Par exemple, une personne désireuse de contourner votre processus d'inscription et de vérification peut rechercher la chaîne du programme qui demande à l'utilisateur un numéro de série. Une fois la chaîne trouvée, elle peut rechercher les instructions qui se trouvent à proximité afin de modifier la logique. Le chiffrement de chaînes rend cette opération beaucoup plus difficile, car la recherche ne donne rien.
  • Le chiffrement de chaînes est basé sur l'inclusion ; par conséquent, vous devez activer la case à cocher correspondant à l'assembly à la racine de l'arborescence représentée dans le volet gauche afin d'inclure toutes les méthodes dans l'assembly d'entrée.
  • Cliquez sur l'onglet Suppression. Cette opération indique à Dotfuscator de détecter et de supprimer les types, les méthodes et les champs inutilisés. Cela peut représenter une économie non négligeable d'espace dans l'application finale.
  • Pour que la suppression fonctionne, Dotfuscator doit connaître les points d'entrée de l'application. Dans le cas présent, le point d'entrée est la méthode « Main » standard et Dotfuscator est capable de le déterminer sans configuration supplémentaire.

Étape 5 - Régénération du projet

  • Cliquez sur Générer ; le projet est prêt à être de nouveau obfusqué. Comme précédemment, l'assembly obfusqué est stocké dans :
C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.0\samples\cs\GettingStarted\dotfuscated

Étape 6 - Recherche de la sortie

  • Cliquez sur l'onglet Sortie. À présent, vous pouvez naviguer dans une arborescence qui montre la façon dont Dotfuscator a obfusqué votre code.
  • Développez l'arborescence racine et tous les sous-arbres. Remarquez les icônes en forme de losanges bleus. Ce sont les méthodes et les champs renommés. Les parents de chacune de ces icônes affichent leur nom d'origine. Dotfuscator a renommé chaque méthode et chaque champ pour rendre presque impossible le déchiffrement de la finalité de chaque méthode. Cela peut avoir un impact très important sur le processus d'ingénierie à rebours du code.

  • Notez les méthodes SaySomething et set_Name actuellement en surbrillance, ainsi que la propriété Name. Dotfuscator a détecté que ces éléments ne sont pas utilisés dans cette application. La fonctionnalité de réduction de Dotfuscator peut donc les supprimer pour obtenir une application plus compacte.

Étapes suivantes

À présent que vous avez réussi l'obfuscation à l'aide de l'interface GUI, vous pouvez apprendre à utiliser l'interface de ligne de commande pour obtenir les mêmes résultats. Vous pouvez également examiner l'assembly de sortie obfusqué pour juger de l'efficacité de l'obfuscation.

© 2002-2007 PreEmptive Solutions. Tous droits réservés.