Flux de travail courants
Trois façons courantes de configurer un projet, d’une application seule à un ensemble de bibliothèques distribuées ensemble.
Protéger une application seule
Utilisez ce flux de travail lorsque vous distribuez un seul assembly, ou une application dont vous ne voulez pas fusionner les bibliothèques.
Ajouter l’application
Faites glisser le fichier .exe ou .dll sur le canevas, ou cliquez sur + Ajouter un assembly.
Choisir un niveau de protection
Exécutez Obfuscation : définir le niveau… depuis la palette de commandes et choisissez Équilibré comme point de départ. Ouvrez le panneau des propriétés pour vérifier le résultat, par exemple pour choisir un autre algorithme de chiffrement des chaînes.
Conserver un fichier de mappage
Cochez Écrit sa map de renommage dans le groupe Fichiers map du panneau des propriétés. Avec ce fichier, vous pouvez décoder dans le Décodeur de pile les traces de pile que vous envoient vos clients. Conservez le fichier de mappage avec votre build, pas avec l’application.
Exécuter et vérifier
Cliquez sur Exécuter le projet. Consultez l’onglet Problèmes du panneau Activité et le score d’obfuscation dans la carte de la cible. Lancez ensuite l’application protégée avec Exécution > Lancer l’application obfusquée (Ctrl+F5, Cmd+F5 sous macOS) et essayez-la.
Si l’application utilise la réflexion, la sérialisation ou la liaison de données sur des noms, certains symboles doivent conserver leur nom. Excluez-les avec des règles XML dans l’onglet Règles XML, ou avec l’attribut Obfuscation dans votre code.
Fusionner des bibliothèques dans l’exécutable principal
Utilisez ce flux de travail pour distribuer un seul fichier au lieu d’un exécutable et de ses bibliothèques privées. Avec Internalize activé, les types fusionnés deviennent internes, si bien que leurs noms peuvent eux aussi être obfusqués. Voir Fusion des assemblies.
Ajouter tous les assemblies
Ajoutez l’exécutable et les bibliothèques à fusionner, tous comme cibles.
Lancer la configuration de la fusion
Exécutez Obfuscation : configurer la fusion dans l’assembly principal depuis la palette de commandes, ou cliquez sur Configurer la fusion dans la grille. Les bibliothèques deviennent des entrées de fusion de l’exécutable. Un assembly que le moteur ne peut pas fusionner reste une cible distincte.
Vérifier le graphe
Sur le canevas, les bibliothèques sont reliées à l’exécutable par des lignes portant l’étiquette FUSIONNER. Dans la grille, l’exécutable est la seule ligne et le compteur affiche par exemple 1 cible · 4 fusionnés. Ouvrez l’onglet Entrées de sa ligne pour voir les fichiers fusionnés.
Définir la protection et exécuter
Choisissez un niveau pour l’exécutable et exécutez le projet. Le dossier de sortie contient un seul assembly.
Pour stocker une bibliothèque dans l’exécutable sous forme de ressource au lieu de fusionner son code, changez son type en Incorporer dans l’onglet Entrées ou dans la fenêtre contextuelle de la dépendance. Voir Dépendances.
Obfusquer un ensemble de bibliothèques avec renommage public
Utilisez ce flux de travail lorsque vous distribuez plusieurs assemblies qui s’appellent les uns les autres, comme un framework et les applications construites dessus, et que vous voulez renommer aussi leur API publique. Chaque assembly doit utiliser les nouveaux noms des autres : les cibles échangent donc leurs fichiers de mappage des renommages.
Ajouter les assemblies
Ajoutez comme cibles toutes les bibliothèques et toutes les applications qui les utilisent.
Relier les cibles qui s’utilisent mutuellement
Pour chaque bibliothèque, faites glisser de son point d’ancrage droit vers le point d’ancrage gauche d’une cible qui l’appelle et choisissez Transmettre le fichier de map. La bibliothèque s’exécute désormais en premier et écrit son fichier de mappage, que lit ensuite la cible qui l’utilise.
Lancer la configuration publique
Exécutez Obfuscation : configurer l’obfuscation publique (tous les assemblies), ou cliquez sur Configurer l’obfuscation publique dans la grille. Chaque cible reçoit la règle obfuscate public et écrit son fichier de mappage des renommages. Les cibles qui comptent une autre cible parmi leurs dépendances reçoivent automatiquement le lien de mappage.
Vérifier l’ordre
Dans la grille, ajoutez les colonnes Flux · Étape et Exécuter après et activez Grouper par flux. Chaque bibliothèque précède les cibles qui lisent son fichier de mappage.
Exécuter
Exécutez le projet. Conservez tous les fichiers de mappage de l’exécution : vous en avez besoin pour décoder les traces de pile, et pour obfusquer un build ultérieur d’une application avec la même version d’une bibliothèque.



Une application qui lit le fichier de mappage de sa bibliothèque
Lorsqu’une bibliothèque a été obfusquée lors d’un build précédent et ne fait pas partie du projet, ajoutez son fichier de mappage avec Ajouter un fichier de map… sous Autres fichiers de map dans le panneau des propriétés de chaque cible qui l’utilise. Voir Renommage entre assemblies.
Les fichiers de mappage des renommages et les fichiers de statistiques contiennent les noms d’origine de votre code. Conservez-les avec les archives de vos builds et ne les distribuez jamais avec l’application.
Générer le projet en dehors de Babel Desktop
Un projet enregistré par Babel Desktop est un fichier MSBuild. Une fois qu’il s’exécute comme vous le souhaitez, générez-le sur un serveur de build avec la tâche MSBuild ; les arêtes de flux et les liens de mappage sont enregistrés comme dépendances entre cibles, si bien que MSBuild exécute les cibles dans le même ordre.