Skip to Content
Nouvelle version 12 disponible 🎉

Paramètres de la cible

Chaque cible a ses propres paramètres Babel Obfuscator. Le panneau des propriétés les modifie une cible à la fois ; les commandes de configuration et les niveaux de protection en changent un grand nombre en une seule opération.

Le panneau des propriétés

Sélectionnez une cible et cliquez sur le bouton Propriétés en haut à droite de la barre d’outils, appuyez sur Enter lorsqu’un nœud est sélectionné, ou choisissez Propriétés dans le menu d’un nœud ou d’une ligne. Le panneau s’ancre à droite et porte le titre Propriétés de l’assembly suivi du nom de la cible. Il comporte deux onglets : Paramètres et Règles XML.

L’onglet Paramètres répertorie toutes les options Babel Obfuscator de la cible sélectionnée, regroupées en Fichiers map, Renommage, Flux de contrôle, Chiffrement du code, Optimisation, Signature et protection, Fichiers et dépendances, Output & diagnostics et Advanced. Chaque groupe indique le nombre d’options qu’il contient et peut être replié. Saisissez du texte dans Rechercher un paramètre pour filtrer la liste.

Panneau des propriétés de la cible BubbleBurst.exe ouvert à côté du canevas, sur l’onglet Settings, avec le champ de recherche Find a setting, le groupe Map files où Writes its rename map est coché, et le groupe Renaming qui affiche Flatten Namespaces, Unicode Normalization et Detect If ObfuscatedPanneau des propriétés de la cible BubbleBurst.exe ouvert à côté du canevas, sur l’onglet Settings, avec le champ de recherche Find a setting, le groupe Map files où Writes its rename map est coché, et le groupe Renaming qui affiche Flatten Namespaces, Unicode Normalization et Detect If ObfuscatedPanneau des propriétés de la cible BubbleBurst.exe ouvert à côté du canevas, sur l’onglet Settings, avec le champ de recherche Find a setting, le groupe Map files où Writes its rename map est coché, et le groupe Renaming qui affiche Flatten Namespaces, Unicode Normalization et Detect If Obfuscated

Le panneau des propriétés de la cible sélectionnée

Les paramètres portent les noms d’options de la tâche MSBuild ; leur effet est décrit dans la référence de la tâche Babel et dans les pages consacrées à chaque protection. Chaque option dispose d’un contrôle adapté à son type : cases à cocher pour les options à deux états, listes pour les algorithmes, sélecteurs de fichiers et de dossiers pour les chemins, éditeurs pour les filtres et les tables de propriétés. Une liste réglée sur Par défaut omet l’option dans le projet, si bien que le moteur utilise sa propre valeur par défaut. Les modifications ne s’appliquent qu’à la cible sélectionnée ; pour modifier plusieurs cibles à la fois, utilisez la grille.

Panneau des propriétés sur le groupe Code encryption : String Encryption activé, Msil Encryption activé avec le filtre .*, Dynamic Proxy Call Filters réglé sur ICollection.* et Value Encryption avec int32, int64, single, double et array activésPanneau des propriétés sur le groupe Code encryption : String Encryption activé, Msil Encryption activé avec le filtre .*, Dynamic Proxy Call Filters réglé sur ICollection.* et Value Encryption avec int32, int64, single, double et array activésPanneau des propriétés sur le groupe Code encryption : String Encryption activé, Msil Encryption activé avec le filtre .*, Dynamic Proxy Call Filters réglé sur ICollection.* et Value Encryption avec int32, int64, single, double et array activés

Paramètres de chiffrement du code : chiffrement des chaînes, chiffrement MSIL et chiffrement des valeurs

Les options composites, comme Control Flow Obfuscation, affichent un contrôle par propriété. L’image suivante montre les options du flux de contrôle. La dernière, chain, active l’algorithme d’état chaîné de l’édition Ultimate.

Panneau des propriétés filtré par ControlFlow : la table Control Flow Obfuscation avec enable, goto, switch, case, if, call et value activés, token et underflow désactivés, et chain laissé à sa valeur par défautPanneau des propriétés filtré par ControlFlow : la table Control Flow Obfuscation avec enable, goto, switch, case, if, call et value activés, token et underflow désactivés, et chain laissé à sa valeur par défautPanneau des propriétés filtré par ControlFlow : la table Control Flow Obfuscation avec enable, goto, switch, case, if, call et value activés, token et underflow désactivés, et chain laissé à sa valeur par défaut

Les propriétés de Control Flow Obfuscation

Les mots de passe, par exemple celui d’une clé de signature ou d’un fichier de mappage, ne sont conservés que pour la session en cours. Ils ne sont jamais écrits dans le fichier de projet, et vous devez les saisir à nouveau après un redémarrage. Lorsque le moteur a besoin d’un mot de passe pendant une exécution, Babel Desktop vous le demande.

Fichiers de mappage

Le groupe Fichiers map, en haut de l’onglet Paramètres, réunit les paramètres de mappage de la cible sélectionnée :

  • Écrit sa map de renommage active ou désactive le fichier de mappage de la cible. La ligne affichée en dessous indique où le fichier est écrit : À côté de l’assembly obfusqué par défaut, ou le nom de fichier choisi avec Modifier….
  • Maps d’autres cibles répertorie les liens de mappage qui aboutissent à cette cible. Cliquez sur le nom d’une cible pour la sélectionner, ou sur son × pour supprimer le lien.
  • Autres fichiers de map répertorie les fichiers de mappage que cette cible lit et qu’aucune cible du projet n’écrit, par exemple celui d’une bibliothèque obfusquée lors d’un build précédent. Ajouter un fichier de map… en ajoute un et Retirer l’enlève.
Propriétés de la cible CrossAssembly1App.dll sur l’onglet Settings : le groupe Map files avec Writes its rename map coché et le fichier CrossAssembly1App.dll.map.xml avec un bouton Change..., CrossAssembly1.dll répertorié sous Maps from other targets avec un bouton de suppression, et le bouton Add map file... sous Other map filesPropriétés de la cible CrossAssembly1App.dll sur l’onglet Settings : le groupe Map files avec Writes its rename map coché et le fichier CrossAssembly1App.dll.map.xml avec un bouton Change..., CrossAssembly1.dll répertorié sous Maps from other targets avec un bouton de suppression, et le bouton Add map file... sous Other map filesPropriétés de la cible CrossAssembly1App.dll sur l’onglet Settings : le groupe Map files avec Writes its rename map coché et le fichier CrossAssembly1App.dll.map.xml avec un bouton Change..., CrossAssembly1.dll répertorié sous Maps from other targets avec un bouton de suppression, et le bouton Add map file... sous Other map files

Le groupe Fichiers map d’une cible qui lit le fichier de mappage d’une bibliothèque

Règles XML

L’onglet Règles XML permet de modifier les règles d’obfuscation XML intégrées de la cible sélectionnée. L’éditeur applique la coloration syntaxique au XML, et Valider le vérifie par rapport au schéma des règles Babel en indiquant la ligne et la colonne de chaque erreur. Ouvrir le XML charge un fichier de règles dans l’éditeur, Enregistrer le fichier XML écrit le contenu de l’éditeur dans un fichier et Appliquer à l’assembly enregistre les règles dans la cible. Les règles intégrées sont enregistrées dans le fichier de projet.

Onglet XML rules de la cible avec une règle intégrée pour l’assembly fusionné BubbleBurst.View, qui règle la propriété Dynamic Proxy Call Filters sur IEnumerator.*, et les boutons Open XML, Validate, Save XML file et Apply to assemblyOnglet XML rules de la cible avec une règle intégrée pour l’assembly fusionné BubbleBurst.View, qui règle la propriété Dynamic Proxy Call Filters sur IEnumerator.*, et les boutons Open XML, Validate, Save XML file et Apply to assemblyOnglet XML rules de la cible avec une règle intégrée pour l’assembly fusionné BubbleBurst.View, qui règle la propriété Dynamic Proxy Call Filters sur IEnumerator.*, et les boutons Open XML, Validate, Save XML file et Apply to assembly

Les règles XML intégrées d’une cible

Tant que des règles ne sont pas appliquées, le panneau reste sur la même cible : appliquez-les, ou abandonnez-les avec Paramètres : annuler les modifications non appliquées et recharger dans la palette de commandes, avant de sélectionner une autre cible ou d’exécuter le projet. Les fichiers de règles conservés hors du projet sont répertoriés dans l’onglet Règles des détails de la grille.

Plugins du moteur

Les plugins Babel Obfuscator se définissent pour chaque cible avec Plugins du moteur : configurer les chemins des DLL dans la palette de commandes, ou dans l’onglet Plug-ins des détails de la grille. Plugins du moteur : découvrir les noms d’arguments lit les noms d’arguments que déclare un plugin, ce qui vous permet de renseigner ses arguments. Comme les plugins sont du code .NET qui s’exécute dans le moteur, n’utilisez que des plugins auxquels vous faites confiance.

Commandes de configuration

Les deux commandes de configuration configurent tout un projet en une seule opération, et Obfuscation : définir le niveau… applique un niveau de protection à la cible sélectionnée. Ajoutez d’abord les assemblies, puis exécutez la commande adaptée à l’application. Les trois commandes figurent dans la palette de commandes ; les deux commandes de configuration se trouvent aussi dans la barre d’outils de la grille, sous les noms Configurer l’obfuscation publique et Configurer la fusion.

Palette de commandes filtrée par Obfuscation: Set, qui liste Obfuscation: Setup public obfuscation (all assemblies), Obfuscation: Setup merge into main assembly et Obfuscation: Set level...Palette de commandes filtrée par Obfuscation: Set, qui liste Obfuscation: Setup public obfuscation (all assemblies), Obfuscation: Setup merge into main assembly et Obfuscation: Set level...Palette de commandes filtrée par Obfuscation: Set, qui liste Obfuscation: Setup public obfuscation (all assemblies), Obfuscation: Setup merge into main assembly et Obfuscation: Set level...

Les commandes de configuration dans la palette de commandes

CommandeEffet
Obfuscation : configurer la fusion dans l’assembly principalFusionne toutes les autres cibles dans l’assembly principal, de sorte que le projet produit un seul fichier de sortie. L’assembly principal est le seul .exe du projet, ou la première cible s’il n’y en a aucun ou s’il y en a plusieurs. Un assembly que le moteur ne peut pas fusionner est laissé tel quel.
Obfuscation : configurer l’obfuscation publique (tous les assemblies)Prépare un ensemble d’assemblies distribués ensemble pour que leurs symboles publics soient renommés. Chaque cible reçoit une règle XML nommée obfuscate public et écrit son fichier de mappage, et une cible qui compte une autre cible parmi ses dépendances de fusion, d’incorporation ou de référence lit le fichier de mappage de celle-ci au moyen d’un lien de mappage.
Obfuscation : définir le niveau…Applique l’un des trois niveaux de protection à la cible sélectionnée.

Les deux commandes de configuration ignorent les cibles de type paquet (.apk, .appx et .xap). Aucune des trois ne s’exécute tant qu’une tâche est en cours ou qu’une modification attend d’être appliquée. Elles modifient le projet ouvert sans l’enregistrer, ce qui vous permet de vérifier d’abord le résultat sur le canevas, dans la grille et dans le panneau des propriétés.

Niveaux de protection

Obfuscation : définir le niveau… dans la palette de commandes applique un niveau à la cible sélectionnée ; Définir le niveau d’obfuscation dans le menu d’une ligne de la grille l’applique à toutes les lignes sélectionnées. Les niveaux définissent les options suivantes et laissent les autres inchangées :

NiveauProtection
LégerRenommage des types, méthodes, champs, propriétés et événements. Le flux de contrôle, les fonctionnalités de chiffrement et les protections anti-analyse sont désactivés.
ÉquilibréRenommage, obfuscation du flux de contrôle avec l’algorithme goto, chiffrement des chaînes et blocage d’ILDASM.
MaximalRenommage, obfuscation du flux de contrôle avec goto, switch, case, if et l’état chaîné, chiffrement des chaînes avec l’algorithme stream, chiffrement des valeurs, chiffrement MSIL, détection de falsification, protection contre le débogage et blocage d’ILDASM. Si la licence n’inclut pas l’algorithme stream, le chiffrement des chaînes par défaut est utilisé.

Appliquer un niveau inférieur après un niveau supérieur désactive de nouveau les protections supplémentaires. Un niveau est un point de départ : vous pouvez ensuite modifier chaque option séparément.

Maximal active le chiffrement MSIL sans filtre : il ne chiffre donc que les méthodes que vous sélectionnez avec une règle XML ou l’attribut Obfuscation. Pour chiffrer par espace de noms ou par type, ajoutez un filtre à Msil Encryption dans le groupe Chiffrement du code. Voir Chiffrement du code.

Un niveau ne touche ni au renommage des symboles publics, ni aux fichiers de mappage, ni à la fusion, ni à la signature. Ces réglages dépendent de la façon dont les assemblies sont distribués, et c’est le rôle des commandes de configuration.

Last updated on