Package NuGet Ultimate
Les packages NuGet de Babel Obfuscator permettent d’exécuter Babel sur toute machine de build ou tout serveur de CI doté du SDK .NET, sous Windows, Linux et macOS, sans installer le produit.
Babel Obfuscator fournit deux packages NuGet. Tous deux sont livrés avec l’édition Ultimate et avec les éditions de site de Babel Licensing (Server et Data Center), et aucun n’est publié sur nuget.org : vous les recevez avec le produit et les hébergez sur un flux privé ou dans un dossier local, comme décrit dans Configuration du package.
| Package | Ce qu’il apporte |
|---|---|
Babel.Obfuscator | Intégration au build. Référencer le package ajoute la tâche MSBuild Babel au projet et l’exécute au bon moment du build, de sorte que dotnet build, dotnet publish et Visual Studio produisent une sortie obfusquée. L’essentiel de cette section porte sur ce package. |
Babel.Obfuscator.Tool | La ligne de commande babel fournie sous forme d’outil dotnet, pour l’obfuscation par script en dehors du build. Voir Outil Babel Obfuscator. |
Pourquoi le package plutôt que la tâche Babel
Vous pouvez toujours ajouter la tâche Babel à un projet à la main. Le package le fait pour vous, et il résout aussi un problème difficile à résoudre à la main dans les projets de style SDK : le SDK .NET exécute plusieurs étapes au niveau de l’IL après la compilation (résolution des dépendances, découpage ou trimming, regroupement en fichier unique, compilation anticipée), et l’obfuscation doit avoir lieu avant toutes ces étapes. Le package insère la tâche Babel juste après le compilateur, sur l’assembly du dossier intermédiaire obj, de sorte que toutes les étapes suivantes du build travaillent sur l’assembly obfusqué. Voir Pipeline de build.
Au-delà du placement, le package :
- Fournit les outils de build Babel pour chaque hôte MSBuild pris en charge, c’est-à-dire MSBuild pour .NET Framework, Mono et le SDK .NET de 6.0 à 10.0, et choisit automatiquement le bon.
- Configure la tâche Babel à partir de ce que le projet connaît déjà : les répertoires de recherche des assemblies d’après les références du projet, la clé de nom fort, les symboles de débogage, le fichier de règles et le fichier de licence.
- Ignore les builds au moment de la conception dans Visual Studio et les builds incrémentiels où le compilateur ne s’est pas exécuté, ce qui préserve la réactivité de l’IDE.
- Maintient la cohérence de
dotnet publishlorsque des assemblies sont fusionnés ou incorporés, en mettant à jour le fichier.deps.jsonet l’ensemble des fichiers à publier.
Configuration requise
- Un SDK .NET de 6.0 à 10.0, Visual Studio 2022 ou une version ultérieure, ou MSBuild pour Mono. Les projets .NET Framework générés avec
MSBuild.exesont également pris en charge. - Une licence valide : un fichier
babel.licensesou une clé de licence (voir Activer la licence). Sans licence, le package s’exécute en mode d’évaluation et les assemblies obfusqués cessent de fonctionner après une courte période. - Le package hébergé sur un flux NuGet accessible à votre build (voir Installation).
Démarrage rapide
Ajouter le package
Ajoutez le package Babel.Obfuscator à votre flux, ou à un dossier local déclaré comme source de packages.
Référencer le package
Référencez le package depuis le projet à obfusquer :
<ItemGroup>
<PackageReference Include="Babel.Obfuscator" Version="12.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>Fournir la licence
Copiez babel.licenses dans le dossier de la solution, ou définissez la propriété BabelLicense.
Configurer l’obfuscation
Ajoutez les paramètres d’obfuscation souhaités sous forme de propriétés MSBuild, par exemple :
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<StringEncryption>stream</StringEncryption>
<ControlFlowObfuscation>if=on;switch=on;call=on</ControlFlowObfuscation>
<ResourceEncryption>true</ResourceEncryption>
</PropertyGroup>Générer
Générez le projet. Le journal de Babel apparaît dans la sortie du build et l’assembly de sortie est obfusqué.

Sortie de Babel Obfuscator dans Visual Studio
Dans cette section
- Configuration du package : héberger le package, ajouter la référence, activer la licence et vérifier le premier build.
- Configurer l’obfuscation : les propriétés et les éléments MSBuild qui pilotent toutes les fonctionnalités de Babel, y compris les paramètres introduits dans la version 12.
- Pipeline de build : où s’exécute l’obfuscation, comment la déplacer, les cibles que vous pouvez étendre, la publication et la sélection des outils de build.
- Outil Babel Obfuscator : la ligne de commande
babelsous forme d’outil dotnet. - Référence du package : toutes les propriétés, tous les éléments et toutes les cibles définis par le package, et la correspondance avec les attributs de la tâche Babel.
Exemples
Les exemples suivants du manuel utilisent le package NuGet Babel Obfuscator.
Obfusquer une application .NET pour Android avec le package et des règles personnalisées.
Protéger une application MAUI et choisir le bon mode de l’éditeur de liens pour iOS.
Renommage entre assemblies et publication avec la cible BeforeObfuscate.
Installer le package depuis GitHub Packages et transmettre la licence sous forme de secret.
Exécuter des tests unitaires sur des assemblies obfusqués à l’aide de fichiers de mappage.
Obfusquer une application ClickOnce.
Protéger les pages Razor d’une application Blazor avec des règles.
Configurer le package dans un build Azure Pipelines.
Déployer le package dans un build AppVeyor.