Skip to Content
Nouvelle version 12 disponible 🎉
ObfuscatorBabel Obfuscator

Babel Obfuscator

Babel Obfuscator protège les assemblies .NET contre la rétro-ingénierie, de .NET Framework 2.0 à .NET 10, pour les cibles de bureau, mobiles, web et serveur. Il renomme, chiffre et restructure le code compilé, de sorte que ce qu’un décompilateur récupère ne vaut plus la peine d’être lu.

Pourquoi obfusquer le code .NET

Les logiciels écrits dans des langages .NET tels que C#, VB.NET et F# sont compilés en MSIL (Microsoft Intermediate Language), un jeu d’instructions indépendant du processeur, stocké dans l’assembly avec des métadonnées détaillées : noms de types, signatures de membres, littéraux de chaîne et attributs. Ensemble, ils permettent à des décompilateurs en libre accès de reconstituer un code source proche de l’original, en quelques secondes et sans compétence particulière.

L’obfuscation transforme l’assembly compilé pour que cette reconstitution cesse d’être utile. Babel Obfuscator renomme les symboles, chiffre les chaînes, les constantes et les ressources, réécrit le flux de contrôle des méthodes et peut chiffrer des corps de méthode entiers pour les exécuter dans une machine virtuelle managée. L’application se comporte exactement comme avant ; ce n’est plus le cas du code que récupère un attaquant.

Nouveautés de la version 12.0

La version 12.0 renforce Babel contre la désobfuscation automatisée, étend la détection de falsification aux plateformes mobiles et ouvre le produit aux assistants IA.

Babel Desktop

Nouvelle application multiplateforme pour Windows, macOS et Linux qui modifie et exécute les projets d’obfuscation, décode les traces de pile, gère Babel Licensing et héberge un serveur MCP.

État chaîné Ultimate

Un algorithme d’aplatissement du flux de contrôle conçu pour résister aux désobfuscateurs automatisés. IL vérifiable, compatible avec NativeAOT et MAUI, à quelques pour cent de l’aplatissement ordinaire à l’exécution.

Chiffrement des chaînes STREAM Ultimate

Chiffrement authentifié de chaque chaîne, déchiffrée à la demande par un déchiffreur entièrement managé : compatible avec le découpage (trimming), NativeAOT et FIPS, vérifié sur Android et iOS.

Intégrité du paquet Android Ultimate

Détection de falsification pour .NET MAUI sur Android : l’application compare le certificat de signature de l’APK aux empreintes de signataires épinglées lors de l’obfuscation, de sorte qu’une application reconditionnée est rejetée, même découpée ou compilée en AOT.

Identité du paquet iOS Ultimate

Détection de falsification pour .NET MAUI sur iOS : l’application vérifie son identifiant de bundle et son identifiant d’équipe Apple par rapport aux valeurs épinglées, en AOT complet.

Frames de proxy dans le décodeur de pile

Les traces de pile décodées nomment désormais la méthode qui se trouve derrière chaque pont de proxy dynamique et peuvent masquer entièrement les frames générées par Babel.

Les versions qui ont précédé la 12.0 ont apporté d’autres nouveautés : la version 11.8 a ajouté un déchiffreur AES managé pour que les assemblies protégés démarrent sur les hôtes en mode FIPS, une obfuscation beaucoup plus rapide des très gros assemblies et l’exemple Liaison à un dongle matériel ; la version 11.7 a introduit la ligne de commande adaptée à l’IA.

Le badge Ultimate

Certains titres de ce manuel portent ce repère : Ultimate. Il signifie que la fonctionnalité est disponible avec l’édition Ultimate de Babel Obfuscator ou une édition supérieure ; la même information s’affiche lorsque vous survolez le badge.

Babel Obfuscator existe en deux éditions. Enterprise est une licence mono-utilisateur pour Windows, avec l’outil en ligne de commande et la tâche MSBuild de l’archive zip .NET Framework (babel_net472). Ultimate est une licence de site qui fonctionne sous Windows, Linux et macOS sur un nombre illimité de machines et qui ajoute Babel Desktop, les packages NuGet, l’intégration aux serveurs de build, le plugin Babel Encrypt et les protections introduites dans la version 12.0 pour le niveau Ultimate : l’état chaîné, le chiffrement des chaînes STREAM et la détection de falsification par intégrité du paquet sur Android et iOS. Les éditions de Babel Licensing, Server et Data Center, incluent Babel Obfuscator Ultimate, si bien que toutes les fonctionnalités portant le badge y sont également disponibles ; quelques fonctionnalités liées à la gestion des licences, comme les outils de gestion des licences du serveur MCP, sont propres à ces deux éditions, ce que leur page précise.

Un titre sans badge décrit une fonctionnalité commune aux deux éditions. Le tableau complet, avec les tarifs, se trouve sur la page Comparer les éditions .

Fonctionnalités de protection

Chaque fonctionnalité peut être activée séparément et ajustée symbole par symbole avec les règles d’obfuscation, ce qui vous permet de n’appliquer les transformations les plus fortes que là où se trouve la propriété intellectuelle.

Renommage des symboles

Renommez les espaces de noms, les types, les membres et les paramètres avec des noms dénués de sens, en ASCII ou en Unicode, en tenant compte de XAML/BAML et avec des fichiers de mappage entre assemblies.

Chiffrement des chaînes

Chiffrez les littéraux de chaîne avec les algorithmes XOR, HASH ou STREAM, ou branchez votre propre algorithme.

Obfuscation du flux de contrôle

Insérez des branchements opaques, réécrivez les conditions et aplatissez les méthodes autour de répartiteurs, jusqu’à l’algorithme d’état chaîné de l’édition Ultimate.

Chiffrement du code

Chiffrez les corps de méthode et exécutez-les dans la machine virtuelle Babel managée. Conservez-les dans des fichiers externes ou protégez-les par mot de passe pour des licences basées sur des fonctionnalités.

Proxy dynamique

Faites passer les appels aux méthodes externes et internes par des proxys générés, afin que les cibles réelles des appels disparaissent de l’IL.

Chiffrement des ressources

Compressez et chiffrez les ressources incorporées, déchiffrées à la demande à l’exécution.

Chiffrement des valeurs et des tableaux

Masquez les constantes numériques en ligne et les initialiseurs de tableau, comme les clés et les tables de correspondance.

Protection contre le débogage

Détectez un débogueur attaché et arrêtez le processus, ou exécutez votre propre gestionnaire.

Détection de falsification

Vérifiez le hachage de l’image sur les cibles de bureau et la signature ou l’identité du paquet sur Android et iOS, puis arrêtez le processus ou réagissez avec du code personnalisé.

Fusion et incorporation

Regroupez les dépendances dans un seul assembly, ou incorporez-les sous forme de ressources chiffrées, pour un déploiement en un seul fichier avec une surface exposée réduite.

Optimisations

Supprimez le code mort, scellez les classes, retirez des attributs et appliquez l’expansion en ligne aux petits membres pour réduire les métadonnées et accélérer le chargement.

Règles d’obfuscation

Ajustez chaque fonctionnalité avec des règles XML et des attributs personnalisés, avec l’appui de l’agent d’analyse qui préserve le fonctionnement de la réflexion et de la sérialisation.

Conçu pour les flux de travail assistés par l’IA

Babel considère les assistants IA comme des opérateurs à part entière du produit, à deux niveaux.

Serveur MCP Babel. Babel Desktop peut exposer un point de terminaison MCP  sur la machine locale. Claude Code, ou tout client qui utilise le Model Context Protocol, pilote alors l’application comme vous le feriez : il crée des projets, ajoute des assemblies, écrit des règles, choisit ce qu’il faut fusionner ou incorporer, lance l’obfuscation, lit les avertissements et les statistiques, décode les traces de pile, crée des thèmes et fait des captures d’écran pour vérifier son propre travail. Avec les éditions Server et Data Center, le même serveur gère la base de données des licences. Le serveur est désactivé par défaut. Activez-le avec Activer le serveur d’automatisation dans Paramètres > MCP. Il n’écoute que sur l’interface de boucle locale et peut exiger un jeton d’accès. Copier la commande Claude Code, sur la même page, vous fournit la commande d’inscription. Voir Serveur MCP Babel.

Register Babel Desktop with Claude Code
claude mcp add --transport http babel-obfuscator http://127.0.0.1:8765/mcp \ --header "X-Babel-Token: paste-the-token-from-settings-mcp"

Ligne de commande adaptée à l’IA. Depuis la version 11.7, l’outil en ligne de commande peut émettre un flux de sortie structuré et versionné pour les pipelines de CI et les agents : --format=json ou --format=ndjson font passer stdout au schéma babel.cli.v1, --quiet fait échouer immédiatement les exécutions sans intervention au lieu de poser une question, et --strict-exit active des codes de sortie sémantiques. La même option rend --help et --version lisibles par machine, de sorte qu’un agent peut découvrir toutes les options par lui-même. Voir Mode adapté à l’IA.

Babel Licensing dispose de son propre serveur MCP pour le Babel Licensing Service hébergé, afin qu’un assistant puisse gérer les clients, les licences et les activations par l’API REST. Voir Intégration de l’IA dans le manuel de Babel Licensing.

Plateformes et frameworks

DomainePrise en charge
Hôte de buildWindows, avec l’outil en ligne de commande et la tâche MSBuild des archives zip ; Linux, macOS et les serveurs de build CI au moyen des packages NuGet Babel et de l’outil dotnet (édition Ultimate) ; Babel Desktop sous Windows, macOS et Linux (édition Ultimate)
Runtimes cibles.NET 10 et toutes les versions antérieures de .NET et de .NET Core, .NET Framework 2.0 à 4.8, .NET Standard, Mono
Modèles d’applicationApplications de bureau (WPF, Windows Forms, Avalonia), .NET MAUI sur Android et iOS, Xamarin, Blazor, ASP.NET Core, UWP, nanoFramework
LangagesC#, y compris C# 14, VB.NET et F#
Modes de publicationDépendant du framework, autonome, fichier unique, découpé et NativeAOT

L’obfuscation opère sur l’IL : un hôte de build sous un système d’exploitation donné peut donc protéger des assemblies publiés pour n’importe quel identifiant de runtime. Le renommage des symboles, le chiffrement des chaînes STREAM et l’obfuscation du flux de contrôle, état chaîné compris, résistent sans modification au découpage et à NativeAOT. Les fonctionnalités qui ont besoin d’une image mappée en mémoire ou d’IL dynamique, comme le chiffrement du code, le proxy dynamique et le contrôle de falsification des cibles de bureau, ont des limites documentées sur les cibles MAUI, Blazor et AOT ; la page de chaque fonctionnalité les indique.

Comment exécuter Babel

L’édition Ultimate et les éditions de Babel Licensing incluent les packages NuGet : Babel s’exécute donc en tant qu’outil dotnet sous Windows, Linux et macOS, ainsi que dans les builds de style SDK. Babel Desktop exécute le moteur sur .NET 10, si bien que l’obfuscation dans Babel Desktop nécessite elle aussi l’une de ces éditions. L’édition Enterprise fournit l’outil en ligne de commande pour Windows et la tâche MSBuild de l’archive zip .NET Framework.

Étapes suivantes

Last updated on