NuGet-Paket Ultimate
Mit den NuGet-Paketen von Babel Obfuscator führen Sie Babel auf jedem Buildrechner oder CI-Server aus, auf dem das .NET SDK vorhanden ist, unter Windows, Linux und macOS, ohne das Produkt zu installieren.
Babel Obfuscator liefert zwei NuGet-Pakete. Beide gehören zur Ultimate-Edition und zu den Standorteditionen von Babel Licensing (Server und Data Center), und keines ist auf nuget.org veröffentlicht: Sie erhalten sie mit dem Produkt und hosten sie in einem privaten Feed oder in einem lokalen Ordner, wie unter Paketeinrichtung beschrieben.
| Paket | Was es bietet |
|---|---|
Babel.Obfuscator | Buildintegration. Wenn Sie das Paket referenzieren, wird die MSBuild-Aufgabe Babel dem Projekt hinzugefügt und an der richtigen Stelle des Builds ausgeführt, sodass dotnet build, dotnet publish und Visual Studio eine verschleierte Ausgabe erzeugen. Der größte Teil dieses Abschnitts behandelt dieses Paket. |
Babel.Obfuscator.Tool | Die Befehlszeile babel, verpackt als dotnet-Tool, für die skriptgesteuerte Verschleierung außerhalb des Builds. Siehe Babel Obfuscator Tool. |
Warum das Paket statt der Babel-Aufgabe
Sie können die Babel-Aufgabe jederzeit von Hand in ein Projekt einfügen. Das Paket erledigt das für Sie und löst außerdem ein Problem, das sich in Projekten im SDK-Stil von Hand nur schwer lösen lässt: Das .NET SDK führt nach der Kompilierung mehrere Schritte auf IL-Ebene aus (Abhängigkeitsauflösung, Trimming, Einzeldateibündelung, Ahead-of-Time-Kompilierung), und die Verschleierung muss vor allen diesen Schritten erfolgen. Das Paket fügt die Babel-Aufgabe direkt nach dem Compiler ein und wendet sie auf die Assembly im Zwischenordner obj an, sodass jeder spätere Schritt des Builds mit der verschleierten Assembly arbeitet. Siehe Buildpipeline.
Über die Platzierung hinaus übernimmt das Paket Folgendes:
- Es liefert die Buildtools von Babel für jeden unterstützten MSBuild-Host mit, also für MSBuild von .NET Framework, für Mono und für das .NET SDK von 6.0 bis 10.0, und wählt automatisch die richtigen aus.
- Es konfiguriert die Babel-Aufgabe anhand dessen, was das Projekt bereits weiß: die Suchverzeichnisse für Assemblys aus den Projektreferenzen, den Schlüssel für den starken Namen, die Debugsymbole, die Regeldatei und die Lizenzdatei.
- Es überspringt Entwurfszeitbuilds in Visual Studio und inkrementelle Builds, bei denen der Compiler nicht gelaufen ist, damit die IDE reaktionsfähig bleibt.
- Es hält
dotnet publishkonsistent, wenn Assemblys zusammengeführt oder eingebettet werden, indem es die Datei.deps.jsonund die Menge der veröffentlichten Dateien aktualisiert.
Anforderungen
- Ein .NET SDK von 6.0 bis 10.0, Visual Studio 2022 oder höher oder Mono MSBuild. .NET-Framework-Projekte, die mit
MSBuild.exeerstellt werden, werden ebenfalls unterstützt. - Eine gültige Lizenz: eine Datei
babel.licensesoder ein Lizenzschlüssel (siehe Die Lizenz aktivieren). Ohne Lizenz läuft das Paket im Evaluierungsmodus, und die verschleierten Assemblys funktionieren nach kurzer Zeit nicht mehr. - Das Paket, gehostet in einem NuGet-Feed, den Ihr Build erreichen kann (siehe Installation).
Schnellstart
Paket hinzufügen
Fügen Sie das Paket Babel.Obfuscator Ihrem Feed hinzu oder einem lokalen Ordner, der als Paketquelle registriert ist.
Paket referenzieren
Referenzieren Sie das Paket in dem Projekt, das verschleiert werden soll:
<ItemGroup>
<PackageReference Include="Babel.Obfuscator" Version="12.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>Lizenz bereitstellen
Kopieren Sie babel.licenses in den Ordner der Projektmappe oder setzen Sie die Eigenschaft BabelLicense.
Verschleierung konfigurieren
Fügen Sie die gewünschten Verschleierungseinstellungen als MSBuild-Eigenschaften hinzu, zum Beispiel:
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<StringEncryption>stream</StringEncryption>
<ControlFlowObfuscation>if=on;switch=on;call=on</ControlFlowObfuscation>
<ResourceEncryption>true</ResourceEncryption>
</PropertyGroup>Erstellen
Erstellen Sie das Projekt. Das Babel-Protokoll erscheint in der Buildausgabe, und die Ausgabe-Assembly ist verschleiert.

Ausgabe von Babel Obfuscator in Visual Studio
In diesem Abschnitt
- Paketeinrichtung: das Paket hosten, die Referenz hinzufügen, die Lizenz aktivieren und den ersten Build prüfen.
- Verschleierung konfigurieren: die MSBuild-Eigenschaften und MSBuild-Elemente, die jede Funktion von Babel steuern, einschließlich der in Version 12 eingeführten Einstellungen.
- Buildpipeline: wo die Verschleierung läuft, wie Sie sie verschieben, welche Ziele Sie erweitern können, das Veröffentlichen und die Auswahl der Buildtools.
- Babel Obfuscator Tool: die Befehlszeile
babelals dotnet-Tool. - Referenz des Pakets: alle Eigenschaften, Elemente und Ziele, die das Paket definiert, und die Zuordnung zu den Attributen der Babel-Aufgabe.
Beispiele
Die folgenden Beispiele im Handbuch verwenden das NuGet-Paket von Babel Obfuscator.
Eine App mit .NET für Android mit dem Paket und benutzerdefinierten Regeln verschleiern.
Eine MAUI-App schützen und den richtigen Linker-Modus für iOS wählen.
Assemblyübergreifende Umbenennung und Veröffentlichung mit dem Ziel BeforeObfuscate.
Das Paket aus GitHub Packages installieren und die Lizenz als Geheimnis übergeben.
Unit-Tests mithilfe von Map-Dateien gegen verschleierte Assemblys ausführen.
Eine ClickOnce-Anwendung verschleiern.
Die Razor-Seiten einer Blazor-Anwendung mit Regeln schützen.
Das Paket in einem Build von Azure Pipelines einrichten.
Das Paket in einem AppVeyor-Build bereitstellen.