Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorNuGet-Paket

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.

PaketWas es bietet
Babel.ObfuscatorBuildintegration. 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.ToolDie 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 publish konsistent, wenn Assemblys zusammengeführt oder eingebettet werden, indem es die Datei .deps.json und 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.exe erstellt werden, werden ebenfalls unterstützt.
  • Eine gültige Lizenz: eine Datei babel.licenses oder 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 babel als 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.

Last updated on