Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorNuGet-PaketReferenz des Pakets

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.

EigenschaftStandardwertBeschreibung
BabelEnabledtrueHauptschalter. 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.
BabelOverrideCompiletrueGibt an, ob das Paket den Verschleierungsschritt nach CoreCompile einfügt. Setzen Sie die Eigenschaft auf false, um das Ziel ObfuscateBuild selbst einzubinden.
RunBabelAfterBuildfalseBei true läuft Babel am Ende des Builds auf $(TargetPath) statt auf der Zwischen-Assembly.
BabelBeforeTargetsFührt den Verschleierungsschritt vor dem genannten Ziel aus und schaltet die Standardplatzierung aus.
BabelAfterTargetsFührt den Verschleierungsschritt nach dem genannten Ziel aus und schaltet die Standardplatzierung aus.
BabelPackageDirStammordner des PaketsStammordner des entpackten Pakets.
BabelTaskDirje HostOrdner, 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).
BabelExeName der ausführbaren Babel-Datei, babel.exe oder babel.dll (Attribut ToolExe der Aufgabe).
BabelInputFileZwischen-AssemblyAssembly, 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.
BabelLicensebabel.licenses im Projektordner oder in einem übergeordneten OrdnerPfad der Lizenzdatei, Lizenzschlüssel oder Benutzerschlüssel mit floating:.
BabelLicenseDirOrdner, in dem babel.licenses gefunden wurde. Wird vom Paket gesetzt.
SymbolsRenamingtrueSchaltet alle Umbenennungsfunktionen auf einmal ein oder aus.
NoConfigurationtrueGibt an, ob Babel seine Konfigurationsdatei ignoriert.
GenerateDebugtrue, wenn eine PDB-Datei vorhanden istGibt an, ob Debugsymbole für die verschleierte Assembly erzeugt werden.
CopyOutputSymbolsToPublishDirectoryfalse in ReleaseStandardeigenschaft des SDK. Das Paket schaltet sie in Release aus, damit keine PDB-Dateien veröffentlicht werden.
BabelProvideCommandLineArgsfalseSchreibt die Befehlszeile von Babel in das Protokoll und in das Element @(BabelCommandLineArgs).
BabelWarningsAsErrorsWarncodes, die als Fehler gemeldet werden. Setzen Sie die Eigenschaft auf W00000, damit Builds fehlschlagen, die im Evaluierungsmodus laufen.
BabelWarningsAsInfosWarncodes, die als Informationsmeldungen gemeldet werden.
BabelWarningsToIgnoreWarncodes, die unterdrückt werden.
BabelExitCodeAusgabe: Exitcode der Babel-Aufgabe, verfügbar nach CoreObfuscate.

Elemente des Pakets

ElementBeschreibung
BabelRulesXML-Regeldateien. babelRules.xml im Projektordner wird automatisch hinzugefügt.
MergeAssemblyAssemblys, die mit der Ziel-Assembly zusammengeführt werden.
EmbedAssemblyAssemblys, die in die Ziel-Assembly eingebettet werden.
MapInFileXML-Map-Dateien bereits verschleierter Assemblys.
BabelPluginPlugin-Assemblys, die geladen werden.
BabelSearchDirectoriesSuchverzeichnisse für Assemblys. Werden aus den Projektreferenzen berechnet. Ersetzen oder erweitern Sie sie in einem Einstellungsziel.
BabelTargetReferencesZusätzliche Sucheinträge, die als Referenzen übergeben werden.
AddReferencesAssemblys, die der verschleierten Assembly als Referenzen hinzugefügt werden.
SatelliteAssemblySatelliten-Assemblys, die verarbeitet werden.
XmlDocumentationFileXML-Dokumentationsdateien, die zusammen mit der Assembly verarbeitet werden.
BabelCommandLineArgsAusgabe: die an Babel übergebene Befehlszeile, wenn BabelProvideCommandLineArgs den Wert true hat.

Ziele

ZielBeschreibung
ObfuscateBuildDer in den Build eingefügte Verschleierungsschritt. Führt ObfuscateSettings und danach Obfuscate aus.
ObfuscateSettingsBereitet die Konfiguration der Babel-Aufgabe vor, indem es die folgenden Einstellungsziele ausführt.
ObfuscateDefaultSettingsWendet die Standardwerte der Umbenennung an, sucht die Lizenzdatei, fügt babelRules.xml hinzu und bildet die Suchverzeichnisse.
ObfuscateFrameworkSettingsWählt die Assembly aus, die verarbeitet wird: die Zwischen-Assembly oder $(TargetPath), wenn RunBabelAfterBuild den Wert true hat.
ObfuscateSetupBabelFilesSetzt BabelInputFile und BabelOutputFile und schaltet GenerateDebug ein, wenn eine PDB-Datei vorhanden ist.
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabelLeere Ziele. Definieren Sie sie neu, um die berechnete Konfiguration anzupassen, bevor Babel läuft.
ObfuscateFührt BeforeObfuscate, CoreObfuscate und AfterObfuscate aus.
BeforeObfuscateLeeres Ziel. Definieren Sie es neu, um Aufgaben unmittelbar vor der Babel-Aufgabe auszuführen.
CoreObfuscateFührt die Babel-Aufgabe aus. Definieren Sie es nicht neu.
AfterObfuscateLeeres Ziel. Definieren Sie es neu, um Aufgaben unmittelbar nach der Babel-Aufgabe auszuführen.
UpdateBabelBuildDependencyFileNach GenerateBuildDependencyFile: entfernt zusammengeführte und eingebettete Assemblys sowie das Paket aus der .deps.json-Datei des Builds.
UpdateBabelPublishDependencyFileNach GeneratePublishDependencyFile: dasselbe für die .deps.json-Datei der Veröffentlichung.
UpdateBabelFilesToPublishNach ComputeFilesToPublish: entfernt zusammengeführte und eingebettete Assemblys aus den zu veröffentlichenden Dateien.
OverrideCompileWithBabelNach PrepareForBuild: fügt ObfuscateBuild nach CoreCompile ein, sofern der Schritt nicht verschoben wurde und der Build kein Entwurfszeitbuild ist.
EnableObfuscationFlagWird 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-AufgabeArtEigenschaft oder Element des Pakets
AddReferencesElement@(AddReferences)
AndroidSigningKeyAliasEigenschaftAndroidSigningKeyAlias
AndroidSigningKeyPassEigenschaftAndroidSigningKeyPass
AndroidSigningKeyStoreEigenschaftAndroidSigningKeyStore
AndroidSigningStorePassEigenschaftAndroidSigningStorePass
BabelDirectoryEigenschaftBabelDirectory
CleanAttributesEigenschaftCleanAttributes
ConstRemovalEigenschaftConstRemoval
ControlFlowIterationsEigenschaftControlFlowIterations (ILIterations wird als Alias akzeptiert)
ControlFlowObfuscationEigenschaftControlFlowObfuscation
CopyAttributesEigenschaftMergeCopyAttributes
DbgHelpDllDirEigenschaftDbgHelpDllDir
DeadCodeEliminationEigenschaftDeadCodeElimination
DebuggingProtectionEigenschaftDebuggingProtection
DependenciesManifestEigenschaftDependenciesManifest
DetectIfObfuscatedEigenschaftDetectIfObfuscated
DisgregateRemovalEigenschaftDisgregateRemoval
DynamicProxyEigenschaftDynamicProxy
DynamicProxyCallFiltersEigenschaftDynamicProxyCallFilters
EmbedAssembliesElement@(EmbedAssembly)
EmitInvalidOpcodesEigenschaftEmitInvalidOpcodes
EnableObfuscationAgentEigenschaftEnableObfuscationAgent
EnumRemovalEigenschaftEnumRemoval
FlattenNamespacesEigenschaftFlattenNamespaces
FrameworkEigenschaftFramework
GenerateDebugEigenschaftGenerateDebug
GenerateLogFileEigenschaftGenerateLogFile
GenerateMapOutFileEigenschaftGenerateMapOutFile
InlineExpansionEigenschaftInlineExpansion
InputFileEigenschaftBabelInputFile
InstrumentEigenschaftBabelInstrument
InstrumentEmptyMethodsEigenschaftInstrumentEmptyMethods
InternalizeEigenschaftMergeInternalize
KeyContainerEigenschaftKeyContainerName
KeyFileEigenschaftKeyOriginatorFile
KeyPwdEigenschaftSigningCertPassword
LicenseEigenschaftBabelLicense
LogFileEigenschaftBabelLogFile
MakeProjectEigenschaftMakeBabelProjectFile
MapInFilesElement@(MapInFile)
MapOutFileEigenschaftBabelMapOutFile
MergeAssembliesElement@(MergeAssembly)
ModuleInitializerEigenschaftModuleInitializer
ModuleInitializerTargetEigenschaftModuleInitializerTarget
ModuleVersionIdEigenschaftModuleVersionId
MsilEncryptionEigenschaftMsilEncryption
NameLengthEigenschaftNameLength
NamePrefixEigenschaftNamePrefix
NoConfigurationEigenschaftNoConfiguration
NoWarningsEigenschaftBabelWarningsToIgnore
ObfuscateEventsEigenschaftObfuscateEvents
ObfuscateFieldsEigenschaftObfuscateFields
ObfuscateMethodsEigenschaftObfuscateMethods
ObfuscateParametersEigenschaftObfuscateParameters
ObfuscatePropertiesEigenschaftObfuscateProperties
ObfuscateTypesEigenschaftObfuscateTypes
ObfuscateXamlEigenschaftObfuscateXaml
OutputFileEigenschaftBabelOutputFile
OverloadedRenamingEigenschaftOverloadedRenaming
PdbFileEigenschaftPdbFile
PdbPwdEigenschaftPdbPwd
PluginsElement@(BabelPlugin)
PluginsArgumentsEigenschaftPluginsArguments
ProvideCommandLineArgsEigenschaftBabelProvideCommandLineArgs
RandomSeedEigenschaftRandomSeed
ReferencesElement@(BabelTargetReferences)
RemoveFilesEigenschaftBabelRemoveFiles
ResourceEncryptionEigenschaftResourceEncryption
RulesFilesElement@(BabelRules)
SatelliteAssembliesElement@(SatelliteAssembly)
SealClassesEigenschaftSealClasses
SearchDirectoriesElement@(BabelSearchDirectories)
SearchSatelliteAssembliesEigenschaftSearchSatelliteAssemblies
ShowLogoEigenschaftShowLogo
ShowStatisticsEigenschaftShowStatistics
SingleFileEigenschaftPublishSingleFile (Standardeigenschaft des SDK)
SkipFilesEigenschaftBabelSkipFiles
StatisticsFileEigenschaftStatisticsFile
StringEncryptionEigenschaftStringEncryption
SuppressIldasmEigenschaftSuppressIldasm
SuppressReflectionEigenschaftSuppressReflection
TakeFilesEigenschaftBabelTakeFiles
TamperingDetectionEigenschaftTamperingDetection
TargetAssemblyNameEigenschaftTargetAssemblyName
ToolExeEigenschaftBabelExe
ToolPathEigenschaftBabelPath
TraceEigenschaftTrace
TrustedBundle 12.0EigenschaftTrustedBundle
TrustedSigner 12.0EigenschaftTrustedSigner (mehrere Fingerabdrücke, getrennt durch ;)
TrustedTeam 12.0EigenschaftTrustedTeam
UnicodeNormalizationEigenschaftUnicodeNormalization
UseEigenschaftUse
ValueEncryptionEigenschaftValueEncryption
VerboseLevelEigenschaftVerboseLevel
VirtualFunctionsEigenschaftVirtualFunctions
WarningsAsErrorsEigenschaftBabelWarningsAsErrors
WarningsAsInfosEigenschaftBabelWarningsAsInfos
XapCompressionLevelEigenschaftXapCompressionLevel
XmlDocFilesElement@(XmlDocumentationFile)
XmlRulesEigenschaftXmlRules

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.

Last updated on