Résultats d’exécution
Après une exécution, Babel Desktop note la protection de chaque cible et conserve les statistiques collectées par le moteur, ce qui vous permet de vérifier que l’exécution a appliqué ce que vous attendiez.
Score d’obfuscation
Une fois l’exécution terminée, la carte de chaque cible affiche un score d’obfuscation de 0 à 100, qui permet de vérifier rapidement que l’exécution a appliqué les protections attendues. Laissez le pointeur sur la cible pour ouvrir la carte.



Le score d’obfuscation d’une cible qui fusionne quatre assemblies
Le score additionne les points de cinq couches de protection. Chaque barre indique les points obtenus par une couche par rapport à son maximum, si bien qu’un score faible vous montre quelle couche manque.
| Couche | Points | Obtenus par |
|---|---|---|
| Renommage | 30 | La part des symboles éligibles qui ont été renommés |
| Flux de contrôle | 25 | La part des méthodes qui ont été brouillées. Les méthodes sans branchement ne sont pas modifiées, et la moitié des méthodes suffit pour obtenir tous les points |
| Chiffrement des chaînes | 15 | Les chaînes chiffrées |
| Protection du code | 15 | Le chiffrement MSIL (7), les appels par proxy dynamique (4) et le chiffrement des valeurs (4) |
| Anti-analyse | 15 | La détection de falsification, la protection contre le débogage et le blocage d’ILDASM, 5 points chacun |
Le score est noté Faible en dessous de 35, Moyen à partir de 35, Bon à partir de 60 et Solide à partir de 80. Il est calculé à partir des statistiques de la dernière exécution terminée du projet. Les assemblies fusionnés dans une cible comptent dans le score de celle-ci et n’ont pas de score propre. Une cible qui n’a pas encore été exécutée n’affiche aucun score.
Le score comptabilise les protections appliquées par une exécution et ne dit rien du temps pendant lequel le résultat résiste à un outil donné. Un score plus bas peut être le bon : une bibliothèque dotée d’une API publique conserve ses noms publics et obtient donc moins de points de renommage.
Statistiques de protection
Après une exécution, Résultats en bas à gauche du canevas, ou le bouton Résultats d’exécution de la barre d’outils de la grille, ouvre les statistiques de protection. Choisissez une exécution dans l’historique, un assembly obfusqué et un rapport :
| Rapport | Contenu |
|---|---|
| Renommage | Le nombre de types, méthodes, champs, propriétés et événements renommés et leur nombre total, avec un graphique de couverture |
| Flux de contrôle | Les méthodes brouillées, les instructions de branchement insérées et les itérations, avec une carte arborescente (treemap) par espace de noms et par type et, lorsque les statistiques complètes sont collectées, la complexité cyclomatique avant et après la transformation |
| Chiffrement des chaînes | L’algorithme de chiffrement et les chaînes chiffrées par méthode |
| Chiffrement du code | Les méthodes chiffrées par espace de noms et par type |
| Proxy dynamique | Les appels passant par un proxy et les types de délégués, par méthode cible |
| Optimisations | Les compteurs de suppression du code mort et d’optimisation |
| Temps d’exécution | La durée de chaque phase du moteur |
Vous pouvez effectuer des recherches dans les tableaux et les trier, et descendre dans les cartes arborescentes de l’espace de noms au type. Afficher la sortie, Afficher le journal du moteur et Afficher les données statistiques ouvrent le dossier de sortie, le journal complet du moteur et le fichier de statistiques brutes de l’exécution. Babel Desktop conserve les résultats des 30 dernières exécutions.



Les statistiques de renommage



Les statistiques du flux de contrôle
Les fichiers de statistiques contiennent les noms d’origine des symboles et les valeurs des chaînes. Comme les fichiers de mappage XML, tenez-les à l’écart de l’application distribuée.