Optimisations
Babel Obfuscator peut effectuer une série d’optimisations portant à la fois sur le code et sur les métadonnées. Ces optimisations regroupent diverses techniques qui améliorent l’efficacité, la taille et la sécurité du code obfusqué. En optimisant le code, Babel cherche à en améliorer les performances et à en réduire l’encombrement, pour le rendre plus rapide et plus compact. Dans le même temps, les optimisations des métadonnées rendent le code plus difficile à comprendre, ce qui réduit les chances de réussite d’une rétro-ingénierie. En combinant optimisations du code et optimisations des métadonnées, Babel Obfuscator améliore à la fois la qualité et la protection du code obfusqué.
Babel Obfuscator propose un large éventail d’optimisations pour améliorer le code obfusqué, parmi lesquelles :
- Suppression du code mort
Babel repère et supprime le code qui ne sera jamais exécuté, y compris les méthodes, les propriétés, les champs et les types inutilisés. - Optimisations des métadonnées
a) Scellement automatique des classes : Babel scelle automatiquement les classes pour améliorer les performances grâce aux optimisations que le CLR effectue lors de l’appel de membres non virtuels. Le scellement des classes empêche en outre l’héritage et les modifications, ce qui ajoute une couche de protection.
b) Suppression des attributs personnalisés : Babel élimine les attributs personnalisés inutiles, ce qui réduit la taille des métadonnées.
c) Suppression des types System.Enum : Babel supprime les types System.Enum susceptibles de révéler des informations.
d) Désagrégation des propriétés et des événements (Disgregate Removal) : Babel supprime les constructions de propriétés et d’événements, ce qui allège le code et en réduit la complexité. - Optimisations du code
a) Expansion en ligne : Babel développe en ligne les petites méthodes ou propriétés dans le code appelant, ce qui réduit le surcoût des appels de fonction et améliore les performances.
b) Suppression des champs constants : Babel supprime les champs constants du code, ce qui en réduit la taille et en améliore la sécurité.
Ensemble, ces optimisations visent à améliorer les performances, la taille et la sécurité du code obfusqué. En supprimant le code mort, en optimisant les métadonnées et en améliorant le code lui-même, Babel Obfuscator produit une version de la base de code plus légère, plus efficace et plus difficile à comprendre.
Babel Desktop
Sélectionnez l’assembly sur le canevas du projet puis, dans le panneau des propriétés, activez les optimisations voulues dans le groupe Optimisation : DeadCodeElimination, InlineExpansion, SealClasses, ainsi que les options de suppression des attributs et des métadonnées. Une fois le projet exécuté, la vue Résultats affiche les statistiques d’optimisation. Voir Projets d’obfuscation pour savoir comment utiliser les projets dans Babel Desktop.