Referenz des Pakets
Alle MSBuild-Eigenschaften, MSBuild-Elemente und MSBuild-Ziele, die das Paket Babel.Obfuscator definiert, sowie die Zuordnung zwischen den Eigenschaften des Pakets und den Attributen der Babel-Aufgabe.
Eigenschaften des Pakets
Die folgenden Eigenschaften steuern das Paket selbst. Die Verschleierungseinstellungen sind in der Tabelle Eigenschaftszuordnung aufgeführt.
| Eigenschaft | Standardwert | Beschreibung |
|---|---|---|
BabelEnabled | true | Hauptschalter. Bei false läuft kein Babel-Ziel, auch die Anpassungen beim Veröffentlichen entfallen. |
BabelPublishEnabled | $(BabelEnabled) | Gibt an, ob zusammengeführte und eingebettete Assemblys aus den zu veröffentlichenden Dateien entfernt werden. |
BabelUpdateDependencyFile | $(BabelEnabled) | Gibt an, ob die .deps.json-Dateien des Builds und der Veröffentlichung nach der Verschleierung aktualisiert werden. |
BabelOverrideCompile | true | Gibt an, ob das Paket den Verschleierungsschritt nach CoreCompile einfügt. Setzen Sie die Eigenschaft auf false, um das Ziel ObfuscateBuild selbst einzubinden. |
RunBabelAfterBuild | false | Bei true läuft Babel am Ende des Builds auf $(TargetPath) statt auf der Zwischen-Assembly. |
BabelBeforeTargets | Führt den Verschleierungsschritt vor dem genannten Ziel aus und schaltet die Standardplatzierung aus. | |
BabelAfterTargets | Führt den Verschleierungsschritt nach dem genannten Ziel aus und schaltet die Standardplatzierung aus. | |
BabelPackageDir | Stammordner des Pakets | Stammordner des entpackten Pakets. |
BabelTaskDir | je Host | Ordner, aus dem die Babel-Aufgabe und die Tools geladen werden, siehe Die Buildtools auswählen. |
BabelPath | $(BabelTaskDir) | Ordner der ausführbaren Babel-Datei, die ausgeführt wird (Attribut ToolPath der Aufgabe). |
BabelExe | Name der ausführbaren Babel-Datei, babel.exe oder babel.dll (Attribut ToolExe der Aufgabe). | |
BabelInputFile | Zwischen-Assembly | Assembly, die verschleiert wird. Wird vom Paket berechnet. Überschreiben Sie den Wert in einem Einstellungsziel. |
BabelOutputFile | $(BabelInputFile) | Verschleierte Ausgabe. Wird vom Paket berechnet. Überschreiben Sie den Wert in einem Einstellungsziel. |
BabelLicense | babel.licenses im Projektordner oder in einem übergeordneten Ordner | Pfad der Lizenzdatei, Lizenzschlüssel oder Benutzerschlüssel mit floating:. |
BabelLicenseDir | Ordner, in dem babel.licenses gefunden wurde. Wird vom Paket gesetzt. | |
SymbolsRenaming | true | Schaltet alle Umbenennungsfunktionen auf einmal ein oder aus. |
NoConfiguration | true | Gibt an, ob Babel seine Konfigurationsdatei ignoriert. |
GenerateDebug | true, wenn eine PDB-Datei vorhanden ist | Gibt an, ob Debugsymbole für die verschleierte Assembly erzeugt werden. |
CopyOutputSymbolsToPublishDirectory | false in Release | Standardeigenschaft des SDK. Das Paket schaltet sie in Release aus, damit keine PDB-Dateien veröffentlicht werden. |
BabelProvideCommandLineArgs | false | Schreibt die Befehlszeile von Babel in das Protokoll und in das Element @(BabelCommandLineArgs). |
BabelWarningsAsErrors | Warncodes, die als Fehler gemeldet werden. Setzen Sie die Eigenschaft auf W00000, damit Builds fehlschlagen, die im Evaluierungsmodus laufen. | |
BabelWarningsAsInfos | Warncodes, die als Informationsmeldungen gemeldet werden. | |
BabelWarningsToIgnore | Warncodes, die unterdrückt werden. | |
BabelExitCode | Ausgabe: Exitcode der Babel-Aufgabe, verfügbar nach CoreObfuscate. |
Elemente des Pakets
| Element | Beschreibung |
|---|---|
BabelRules | XML-Regeldateien. babelRules.xml im Projektordner wird automatisch hinzugefügt. |
MergeAssembly | Assemblys, die mit der Ziel-Assembly zusammengeführt werden. |
EmbedAssembly | Assemblys, die in die Ziel-Assembly eingebettet werden. |
MapInFile | XML-Map-Dateien bereits verschleierter Assemblys. |
BabelPlugin | Plugin-Assemblys, die geladen werden. |
BabelSearchDirectories | Suchverzeichnisse für Assemblys. Werden aus den Projektreferenzen berechnet. Ersetzen oder erweitern Sie sie in einem Einstellungsziel. |
BabelTargetReferences | Zusätzliche Sucheinträge, die als Referenzen übergeben werden. |
AddReferences | Assemblys, die der verschleierten Assembly als Referenzen hinzugefügt werden. |
SatelliteAssembly | Satelliten-Assemblys, die verarbeitet werden. |
XmlDocumentationFile | XML-Dokumentationsdateien, die zusammen mit der Assembly verarbeitet werden. |
BabelCommandLineArgs | Ausgabe: die an Babel übergebene Befehlszeile, wenn BabelProvideCommandLineArgs den Wert true hat. |
Ziele
| Ziel | Beschreibung |
|---|---|
ObfuscateBuild | Der in den Build eingefügte Verschleierungsschritt. Führt ObfuscateSettings und danach Obfuscate aus. |
ObfuscateSettings | Bereitet die Konfiguration der Babel-Aufgabe vor, indem es die folgenden Einstellungsziele ausführt. |
ObfuscateDefaultSettings | Wendet die Standardwerte der Umbenennung an, sucht die Lizenzdatei, fügt babelRules.xml hinzu und bildet die Suchverzeichnisse. |
ObfuscateFrameworkSettings | Wählt die Assembly aus, die verarbeitet wird: die Zwischen-Assembly oder $(TargetPath), wenn RunBabelAfterBuild den Wert true hat. |
ObfuscateSetupBabelFiles | Setzt BabelInputFile und BabelOutputFile und schaltet GenerateDebug ein, wenn eine PDB-Datei vorhanden ist. |
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabel | Leere Ziele. Definieren Sie sie neu, um die berechnete Konfiguration anzupassen, bevor Babel läuft. |
Obfuscate | Führt BeforeObfuscate, CoreObfuscate und AfterObfuscate aus. |
BeforeObfuscate | Leeres Ziel. Definieren Sie es neu, um Aufgaben unmittelbar vor der Babel-Aufgabe auszuführen. |
CoreObfuscate | Führt die Babel-Aufgabe aus. Definieren Sie es nicht neu. |
AfterObfuscate | Leeres Ziel. Definieren Sie es neu, um Aufgaben unmittelbar nach der Babel-Aufgabe auszuführen. |
UpdateBabelBuildDependencyFile | Nach GenerateBuildDependencyFile: entfernt zusammengeführte und eingebettete Assemblys sowie das Paket aus der .deps.json-Datei des Builds. |
UpdateBabelPublishDependencyFile | Nach GeneratePublishDependencyFile: dasselbe für die .deps.json-Datei der Veröffentlichung. |
UpdateBabelFilesToPublish | Nach ComputeFilesToPublish: entfernt zusammengeführte und eingebettete Assemblys aus den zu veröffentlichenden Dateien. |
OverrideCompileWithBabel | Nach PrepareForBuild: fügt ObfuscateBuild nach CoreCompile ein, sofern der Schritt nicht verschoben wurde und der Build kein Entwurfszeitbuild ist. |
EnableObfuscationFlag | Wird von der Kompilierung ausgelöst: schaltet ObfuscateBuild nur ein, wenn der Compiler tatsächlich gelaufen ist. |
Eigenschaftszuordnung
Die Tabelle ordnet jedes Attribut der Babel-Aufgabe der MSBuild-Eigenschaft oder dem MSBuild-Element zu, das das Paket liest. Die Eigenschaften akzeptieren dieselben Werte wie der entsprechende Schalter der Befehlszeile. Mit 12.0 gekennzeichnete Attribute sind in Version 12 hinzugekommen.
| Attribut der Babel-Aufgabe | Art | Eigenschaft oder Element des Pakets |
|---|---|---|
AddReferences | Element | @(AddReferences) |
AndroidSigningKeyAlias | Eigenschaft | AndroidSigningKeyAlias |
AndroidSigningKeyPass | Eigenschaft | AndroidSigningKeyPass |
AndroidSigningKeyStore | Eigenschaft | AndroidSigningKeyStore |
AndroidSigningStorePass | Eigenschaft | AndroidSigningStorePass |
BabelDirectory | Eigenschaft | BabelDirectory |
CleanAttributes | Eigenschaft | CleanAttributes |
ConstRemoval | Eigenschaft | ConstRemoval |
ControlFlowIterations | Eigenschaft | ControlFlowIterations (ILIterations wird als Alias akzeptiert) |
ControlFlowObfuscation | Eigenschaft | ControlFlowObfuscation |
CopyAttributes | Eigenschaft | MergeCopyAttributes |
DbgHelpDllDir | Eigenschaft | DbgHelpDllDir |
DeadCodeElimination | Eigenschaft | DeadCodeElimination |
DebuggingProtection | Eigenschaft | DebuggingProtection |
DependenciesManifest | Eigenschaft | DependenciesManifest |
DetectIfObfuscated | Eigenschaft | DetectIfObfuscated |
DisgregateRemoval | Eigenschaft | DisgregateRemoval |
DynamicProxy | Eigenschaft | DynamicProxy |
DynamicProxyCallFilters | Eigenschaft | DynamicProxyCallFilters |
EmbedAssemblies | Element | @(EmbedAssembly) |
EmitInvalidOpcodes | Eigenschaft | EmitInvalidOpcodes |
EnableObfuscationAgent | Eigenschaft | EnableObfuscationAgent |
EnumRemoval | Eigenschaft | EnumRemoval |
FlattenNamespaces | Eigenschaft | FlattenNamespaces |
Framework | Eigenschaft | Framework |
GenerateDebug | Eigenschaft | GenerateDebug |
GenerateLogFile | Eigenschaft | GenerateLogFile |
GenerateMapOutFile | Eigenschaft | GenerateMapOutFile |
InlineExpansion | Eigenschaft | InlineExpansion |
InputFile | Eigenschaft | BabelInputFile |
Instrument | Eigenschaft | BabelInstrument |
InstrumentEmptyMethods | Eigenschaft | InstrumentEmptyMethods |
Internalize | Eigenschaft | MergeInternalize |
KeyContainer | Eigenschaft | KeyContainerName |
KeyFile | Eigenschaft | KeyOriginatorFile |
KeyPwd | Eigenschaft | SigningCertPassword |
License | Eigenschaft | BabelLicense |
LogFile | Eigenschaft | BabelLogFile |
MakeProject | Eigenschaft | MakeBabelProjectFile |
MapInFiles | Element | @(MapInFile) |
MapOutFile | Eigenschaft | BabelMapOutFile |
MergeAssemblies | Element | @(MergeAssembly) |
ModuleInitializer | Eigenschaft | ModuleInitializer |
ModuleInitializerTarget | Eigenschaft | ModuleInitializerTarget |
ModuleVersionId | Eigenschaft | ModuleVersionId |
MsilEncryption | Eigenschaft | MsilEncryption |
NameLength | Eigenschaft | NameLength |
NamePrefix | Eigenschaft | NamePrefix |
NoConfiguration | Eigenschaft | NoConfiguration |
NoWarnings | Eigenschaft | BabelWarningsToIgnore |
ObfuscateEvents | Eigenschaft | ObfuscateEvents |
ObfuscateFields | Eigenschaft | ObfuscateFields |
ObfuscateMethods | Eigenschaft | ObfuscateMethods |
ObfuscateParameters | Eigenschaft | ObfuscateParameters |
ObfuscateProperties | Eigenschaft | ObfuscateProperties |
ObfuscateTypes | Eigenschaft | ObfuscateTypes |
ObfuscateXaml | Eigenschaft | ObfuscateXaml |
OutputFile | Eigenschaft | BabelOutputFile |
OverloadedRenaming | Eigenschaft | OverloadedRenaming |
PdbFile | Eigenschaft | PdbFile |
PdbPwd | Eigenschaft | PdbPwd |
Plugins | Element | @(BabelPlugin) |
PluginsArguments | Eigenschaft | PluginsArguments |
ProvideCommandLineArgs | Eigenschaft | BabelProvideCommandLineArgs |
RandomSeed | Eigenschaft | RandomSeed |
References | Element | @(BabelTargetReferences) |
RemoveFiles | Eigenschaft | BabelRemoveFiles |
ResourceEncryption | Eigenschaft | ResourceEncryption |
RulesFiles | Element | @(BabelRules) |
SatelliteAssemblies | Element | @(SatelliteAssembly) |
SealClasses | Eigenschaft | SealClasses |
SearchDirectories | Element | @(BabelSearchDirectories) |
SearchSatelliteAssemblies | Eigenschaft | SearchSatelliteAssemblies |
ShowLogo | Eigenschaft | ShowLogo |
ShowStatistics | Eigenschaft | ShowStatistics |
SingleFile | Eigenschaft | PublishSingleFile (Standardeigenschaft des SDK) |
SkipFiles | Eigenschaft | BabelSkipFiles |
StatisticsFile | Eigenschaft | StatisticsFile |
StringEncryption | Eigenschaft | StringEncryption |
SuppressIldasm | Eigenschaft | SuppressIldasm |
SuppressReflection | Eigenschaft | SuppressReflection |
TakeFiles | Eigenschaft | BabelTakeFiles |
TamperingDetection | Eigenschaft | TamperingDetection |
TargetAssemblyName | Eigenschaft | TargetAssemblyName |
ToolExe | Eigenschaft | BabelExe |
ToolPath | Eigenschaft | BabelPath |
Trace | Eigenschaft | Trace |
TrustedBundle 12.0 | Eigenschaft | TrustedBundle |
TrustedSigner 12.0 | Eigenschaft | TrustedSigner (mehrere Fingerabdrücke, getrennt durch ;) |
TrustedTeam 12.0 | Eigenschaft | TrustedTeam |
UnicodeNormalization | Eigenschaft | UnicodeNormalization |
Use | Eigenschaft | Use |
ValueEncryption | Eigenschaft | ValueEncryption |
VerboseLevel | Eigenschaft | VerboseLevel |
VirtualFunctions | Eigenschaft | VirtualFunctions |
WarningsAsErrors | Eigenschaft | BabelWarningsAsErrors |
WarningsAsInfos | Eigenschaft | BabelWarningsAsInfos |
XapCompressionLevel | Eigenschaft | XapCompressionLevel |
XmlDocFiles | Element | @(XmlDocumentationFile) |
XmlRules | Eigenschaft | XmlRules |
Den Algorithmus der Zeichenfolgenverschlüsselung festlegen
Die Paketeigenschaft StringEncryption schaltet die Zeichenfolgenverschlüsselung ein und wählt den Algorithmus aus, genau wie der Befehlszeilenschalter --stringencryption. Zulässige Werte sind xor, hash, stream und custom (eine Beschreibung der einzelnen Werte finden Sie unter Zeichenfolgenverschlüsselung). Der boolesche Wert true schaltet die Zeichenfolgenverschlüsselung mit dem Standardalgorithmus ein, während der Name eines Algorithmus sie einschaltet und zugleich diesen Algorithmus auswählt.
Um zum Beispiel Zeichenfolgen mit dem Algorithmus STREAM zu verschlüsseln (authentifizierte Verschlüsselung je Zeichenfolge, vollständig verwaltet, geeignet für AOT, Trimming und FIPS und von .NET Framework bis .NET 10 unterstützt, einschließlich Android, iOS und MAUI), fügen Sie Ihrer Projektdatei Folgendes hinzu:
<PropertyGroup>
<StringEncryption>stream</StringEncryption>
</PropertyGroup>Der Algorithmus STREAM Ultimate ist in den niedrigeren Editionen nicht enthalten: Dort fällt stream auf den Standardalgorithmus zurück.
Führen Sie die Verschleierung in Projekten für .NET Android, iOS und MAUI als Durchlauf aus, der nur Zeichenfolgen verschlüsselt, damit die Namen von Typen und Membern für die Interop-Schicht der Plattform unverändert bleiben.