Pacchetto NuGet Ultimate
I pacchetti NuGet di Babel Obfuscator ti permettono di eseguire Babel su qualsiasi computer di build o server di CI che abbia l’SDK .NET, su Windows, Linux e macOS, senza installare il prodotto.
Babel Obfuscator include due pacchetti NuGet. Entrambi sono compresi nell’edizione Ultimate e nelle edizioni per sede di Babel Licensing (Server e Data Center), e nessuno dei due è pubblicato su nuget.org: li ricevi con il prodotto e li ospiti su un feed privato o in una cartella locale, come descritto in Configurazione del pacchetto.
| Pacchetto | Che cosa offre |
|---|---|
Babel.Obfuscator | Integrazione con la build. Il riferimento al pacchetto aggiunge al progetto il task Babel di MSBuild e lo esegue nel punto giusto della build, così dotnet build, dotnet publish e Visual Studio producono un output offuscato. Gran parte di questa sezione riguarda questo pacchetto. |
Babel.Obfuscator.Tool | La riga di comando babel confezionata come strumento dotnet, per l’offuscamento tramite script al di fuori della build. Vedi Babel Obfuscator Tool. |
Perché il pacchetto invece del task Babel
Puoi sempre aggiungere a mano il task Babel a un progetto. Il pacchetto lo fa per te, e risolve anche un problema difficile da risolvere a mano nei progetti in stile SDK: l’SDK .NET esegue diversi passi a livello di IL dopo la compilazione (risoluzione delle dipendenze, trimming, creazione del bundle a file singolo, compilazione ahead-of-time), e l’offuscamento deve avvenire prima di tutti. Il pacchetto inserisce il task Babel subito dopo il compilatore, sull’assembly nella cartella intermedia obj, così ogni passo successivo della build lavora sull’assembly offuscato. Vedi Pipeline di build.
Oltre al posizionamento, il pacchetto:
- Include gli strumenti di build di Babel per ogni host MSBuild supportato, cioè MSBuild di .NET Framework, Mono e l’SDK .NET dalla versione 6.0 alla 10.0, e sceglie automaticamente quello giusto.
- Configura il task Babel a partire da ciò che il progetto conosce già: le cartelle di ricerca degli assembly ricavate dai riferimenti del progetto, la chiave con nome sicuro, i simboli di debug, il file di regole e il file di licenza.
- Salta le build in fase di progettazione di Visual Studio e le build incrementali in cui il compilatore non è stato eseguito, mantenendo reattivo l’IDE.
- Mantiene coerente
dotnet publishquando gli assembly vengono uniti o incorporati, aggiornando il file.deps.jsone l’insieme dei file pubblicati.
Requisiti
- Un SDK .NET dalla versione 6.0 alla 10.0, Visual Studio 2022 o successivo, oppure MSBuild di Mono. Sono supportati anche i progetti .NET Framework compilati con
MSBuild.exe. - Una licenza valida: un file
babel.licenseso una chiave di licenza (vedi Attivare la licenza). Senza licenza il pacchetto funziona in modalità demo e gli assembly offuscati smettono di funzionare dopo un breve periodo. - Il pacchetto ospitato su un feed NuGet raggiungibile dalla tua build (vedi Installazione).
Avvio rapido
Aggiungi il pacchetto
Aggiungi il pacchetto Babel.Obfuscator al tuo feed, oppure a una cartella locale registrata come origine pacchetti.
Referenzia il pacchetto
Referenzia il pacchetto dal progetto da offuscare:
<ItemGroup>
<PackageReference Include="Babel.Obfuscator" Version="12.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>Fornisci la licenza
Copia babel.licenses nella cartella della soluzione, oppure imposta la proprietà BabelLicense.
Configura l’offuscamento
Aggiungi le impostazioni di offuscamento che ti servono come proprietà MSBuild, per esempio:
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<StringEncryption>stream</StringEncryption>
<ControlFlowObfuscation>if=on;switch=on;call=on</ControlFlowObfuscation>
<ResourceEncryption>true</ResourceEncryption>
</PropertyGroup>Compila
Compila. Il log di Babel compare nell’output della build e l’assembly di output è offuscato.

Output di Babel Obfuscator in Visual Studio
In questa sezione
- Configurazione del pacchetto: ospitare il pacchetto, aggiungere il riferimento, attivare la licenza e verificare la prima build.
- Configurazione dell’offuscamento: le proprietà e gli elementi MSBuild che controllano ogni funzionalità di Babel, comprese le impostazioni introdotte nella versione 12.
- Pipeline di build: dove viene eseguito l’offuscamento, come spostarlo, i target che puoi estendere, la pubblicazione e come vengono selezionati gli strumenti di build.
- Babel Obfuscator Tool: la riga di comando
babelcome strumento dotnet. - Riferimento del pacchetto: tutte le proprietà, gli elementi e i target definiti dal pacchetto, e la corrispondenza con gli attributi del task Babel.
Esempi
Gli esempi seguenti del manuale usano il pacchetto NuGet di Babel Obfuscator.
Offusca un’app .NET per Android con il pacchetto e regole personalizzate.
Proteggi un’app MAUI e scegli la modalità corretta del linker per iOS.
Ridenominazione cross-assembly e pubblicazione con il target BeforeObfuscate.
Installa il pacchetto da GitHub Packages e passa la licenza come segreto.
Esegui i test unitari sugli assembly offuscati usando i file map.
Offusca un’applicazione ClickOnce.
Proteggi con le regole le pagine Razor di un’applicazione Blazor.
Configura il pacchetto in una build di Azure Pipelines.
Distribuisci il pacchetto in una build di AppVeyor.