Skip to Content
Nuova versione 12 disponibile 🎉
ObfuscatorPacchetto NuGetRiferimento del pacchetto

Riferimento del pacchetto

Tutte le proprietà, gli elementi e i target MSBuild definiti dal pacchetto Babel.Obfuscator, e la corrispondenza tra le proprietà del pacchetto e gli attributi del task Babel.

Proprietà del pacchetto

Le proprietà seguenti controllano il pacchetto stesso. Le impostazioni di offuscamento sono elencate nella tabella Corrispondenza delle proprietà.

ProprietàPredefinitoDescrizione
BabelEnabledtrueInterruttore generale. Quando è false, non viene eseguito alcun target di Babel, adattamenti della pubblicazione compresi.
BabelPublishEnabled$(BabelEnabled)Indica se gli assembly uniti e incorporati vengono rimossi dall’insieme dei file da pubblicare.
BabelUpdateDependencyFile$(BabelEnabled)Indica se i file .deps.json di build e di pubblicazione vengono aggiornati dopo l’offuscamento.
BabelOverrideCompiletrueIndica se il pacchetto inserisce il passo di offuscamento dopo CoreCompile. Impostala su false per collegare a mano il target ObfuscateBuild.
RunBabelAfterBuildfalseQuando è true, Babel viene eseguito alla fine della build su $(TargetPath) invece che sull’assembly intermedio.
BabelBeforeTargetsEsegue il passo di offuscamento prima del target indicato, disabilitando il posizionamento predefinito.
BabelAfterTargetsEsegue il passo di offuscamento dopo il target indicato, disabilitando il posizionamento predefinito.
BabelPackageDirradice del pacchettoCartella radice del pacchetto estratto.
BabelTaskDirin base all’hostCartella da cui vengono caricati il task Babel e gli strumenti; vedi Selezionare gli strumenti di build.
BabelPath$(BabelTaskDir)Cartella dell’eseguibile di Babel da eseguire (attributo del task ToolPath).
BabelExeNome dell’eseguibile di Babel, babel.exe o babel.dll (attributo del task ToolExe).
BabelInputFileassembly intermedioAssembly da offuscare. Calcolato dal pacchetto; sovrascrivilo in un target delle impostazioni.
BabelOutputFile$(BabelInputFile)Output offuscato. Calcolato dal pacchetto; sovrascrivilo in un target delle impostazioni.
BabelLicensebabel.licenses trovato nella cartella del progetto o in una cartella superiorePercorso del file di licenza, chiave di licenza o chiave utente floating:.
BabelLicenseDirCartella in cui è stato trovato babel.licenses, impostata dal pacchetto.
SymbolsRenamingtrueAbilita o disabilita tutte le funzionalità di ridenominazione insieme.
NoConfigurationtrueIndica se Babel ignora il proprio file di configurazione.
GenerateDebugtrue quando esiste un PDBIndica se vengono generati i simboli di debug per l’assembly offuscato.
CopyOutputSymbolsToPublishDirectoryfalse in ReleaseProprietà standard dell’SDK; il pacchetto la disattiva in Release, così i file PDB non vengono pubblicati.
BabelProvideCommandLineArgsfalseScrive la riga di comando di Babel nel log e nell’elemento @(BabelCommandLineArgs).
BabelWarningsAsErrorsCodici di avviso da segnalare come errori. Impostala su W00000 per far fallire le build eseguite in modalità demo.
BabelWarningsAsInfosCodici di avviso da segnalare come messaggi informativi.
BabelWarningsToIgnoreCodici di avviso da sopprimere.
BabelExitCodeOutput: codice di uscita del task Babel, disponibile dopo CoreObfuscate.

Elementi del pacchetto

ElementoDescrizione
BabelRulesFile di regole XML. babelRules.xml nella cartella del progetto viene aggiunto automaticamente.
MergeAssemblyAssembly da unire all’assembly target.
EmbedAssemblyAssembly da incorporare nell’assembly target.
MapInFileFile map XML di assembly già offuscati.
BabelPluginAssembly dei plugin da caricare.
BabelSearchDirectoriesCartelle di ricerca degli assembly. Calcolate dai riferimenti del progetto; sostituiscile o estendile in un target delle impostazioni.
BabelTargetReferencesVoci di ricerca aggiuntive passate come riferimenti.
AddReferencesAssembly da aggiungere come riferimenti dell’assembly offuscato.
SatelliteAssemblyAssembly satellite da elaborare.
XmlDocumentationFileFile di documentazione XML da elaborare insieme all’assembly.
BabelCommandLineArgsOutput: la riga di comando passata a Babel, quando BabelProvideCommandLineArgs è true.

Target

TargetDescrizione
ObfuscateBuildIl passo di offuscamento inserito nella build. Esegue ObfuscateSettings e poi Obfuscate.
ObfuscateSettingsPrepara la configurazione del task Babel eseguendo i target delle impostazioni elencati di seguito.
ObfuscateDefaultSettingsApplica i valori predefiniti della ridenominazione, cerca il file di licenza, aggiunge babelRules.xml e compone l’elenco delle cartelle di ricerca.
ObfuscateFrameworkSettingsSeleziona l’assembly da elaborare: l’assembly intermedio, oppure $(TargetPath) quando RunBabelAfterBuild è true.
ObfuscateSetupBabelFilesImposta BabelInputFile e BabelOutputFile, e abilita GenerateDebug quando esiste un PDB.
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabelTarget vuoti, ridefiniscili per modificare la configurazione calcolata prima dell’esecuzione di Babel.
ObfuscateEsegue BeforeObfuscate, CoreObfuscate e AfterObfuscate.
BeforeObfuscateTarget vuoto, ridefiniscilo per eseguire dei task subito prima del task Babel.
CoreObfuscateEsegue il task Babel. Non ridefinirlo.
AfterObfuscateTarget vuoto, ridefiniscilo per eseguire dei task subito dopo il task Babel.
UpdateBabelBuildDependencyFileDopo GenerateBuildDependencyFile: rimuove gli assembly uniti e incorporati e il pacchetto dal file .deps.json di build.
UpdateBabelPublishDependencyFileDopo GeneratePublishDependencyFile: lo stesso per il file .deps.json di pubblicazione.
UpdateBabelFilesToPublishDopo ComputeFilesToPublish: rimuove gli assembly uniti e incorporati dall’insieme dei file da pubblicare.
OverrideCompileWithBabelDopo PrepareForBuild: inserisce ObfuscateBuild dopo CoreCompile, a meno che il passo sia stato spostato o la build sia una build in fase di progettazione.
EnableObfuscationFlagAttivato dalla compilazione: abilita ObfuscateBuild solo quando il compilatore è stato effettivamente eseguito.

Corrispondenza delle proprietà

La tabella associa ogni attributo del task Babel alla proprietà o all’elemento MSBuild letto dal pacchetto. Le proprietà accettano gli stessi valori dell’opzione corrispondente della riga di comando. Gli attributi contrassegnati con 12.0 sono stati aggiunti nella versione 12.

Attributo del task BabelTipoProprietà o elemento del pacchetto
AddReferencesElemento@(AddReferences)
AndroidSigningKeyAliasProprietàAndroidSigningKeyAlias
AndroidSigningKeyPassProprietàAndroidSigningKeyPass
AndroidSigningKeyStoreProprietàAndroidSigningKeyStore
AndroidSigningStorePassProprietàAndroidSigningStorePass
BabelDirectoryProprietàBabelDirectory
CleanAttributesProprietàCleanAttributes
ConstRemovalProprietàConstRemoval
ControlFlowIterationsProprietàControlFlowIterations (ILIterations è accettato come alias)
ControlFlowObfuscationProprietàControlFlowObfuscation
CopyAttributesProprietàMergeCopyAttributes
DbgHelpDllDirProprietàDbgHelpDllDir
DeadCodeEliminationProprietàDeadCodeElimination
DebuggingProtectionProprietàDebuggingProtection
DependenciesManifestProprietàDependenciesManifest
DetectIfObfuscatedProprietàDetectIfObfuscated
DisgregateRemovalProprietàDisgregateRemoval
DynamicProxyProprietàDynamicProxy
DynamicProxyCallFiltersProprietàDynamicProxyCallFilters
EmbedAssembliesElemento@(EmbedAssembly)
EmitInvalidOpcodesProprietàEmitInvalidOpcodes
EnableObfuscationAgentProprietàEnableObfuscationAgent
EnumRemovalProprietàEnumRemoval
FlattenNamespacesProprietàFlattenNamespaces
FrameworkProprietàFramework
GenerateDebugProprietàGenerateDebug
GenerateLogFileProprietàGenerateLogFile
GenerateMapOutFileProprietàGenerateMapOutFile
InlineExpansionProprietàInlineExpansion
InputFileProprietàBabelInputFile
InstrumentProprietàBabelInstrument
InstrumentEmptyMethodsProprietàInstrumentEmptyMethods
InternalizeProprietàMergeInternalize
KeyContainerProprietàKeyContainerName
KeyFileProprietàKeyOriginatorFile
KeyPwdProprietàSigningCertPassword
LicenseProprietàBabelLicense
LogFileProprietàBabelLogFile
MakeProjectProprietàMakeBabelProjectFile
MapInFilesElemento@(MapInFile)
MapOutFileProprietàBabelMapOutFile
MergeAssembliesElemento@(MergeAssembly)
ModuleInitializerProprietàModuleInitializer
ModuleInitializerTargetProprietàModuleInitializerTarget
ModuleVersionIdProprietàModuleVersionId
MsilEncryptionProprietàMsilEncryption
NameLengthProprietàNameLength
NamePrefixProprietàNamePrefix
NoConfigurationProprietàNoConfiguration
NoWarningsProprietàBabelWarningsToIgnore
ObfuscateEventsProprietàObfuscateEvents
ObfuscateFieldsProprietàObfuscateFields
ObfuscateMethodsProprietàObfuscateMethods
ObfuscateParametersProprietàObfuscateParameters
ObfuscatePropertiesProprietàObfuscateProperties
ObfuscateTypesProprietàObfuscateTypes
ObfuscateXamlProprietàObfuscateXaml
OutputFileProprietàBabelOutputFile
OverloadedRenamingProprietàOverloadedRenaming
PdbFileProprietàPdbFile
PdbPwdProprietàPdbPwd
PluginsElemento@(BabelPlugin)
PluginsArgumentsProprietàPluginsArguments
ProvideCommandLineArgsProprietàBabelProvideCommandLineArgs
RandomSeedProprietàRandomSeed
ReferencesElemento@(BabelTargetReferences)
RemoveFilesProprietàBabelRemoveFiles
ResourceEncryptionProprietàResourceEncryption
RulesFilesElemento@(BabelRules)
SatelliteAssembliesElemento@(SatelliteAssembly)
SealClassesProprietàSealClasses
SearchDirectoriesElemento@(BabelSearchDirectories)
SearchSatelliteAssembliesProprietàSearchSatelliteAssemblies
ShowLogoProprietàShowLogo
ShowStatisticsProprietàShowStatistics
SingleFileProprietàPublishSingleFile (proprietà standard dell’SDK)
SkipFilesProprietàBabelSkipFiles
StatisticsFileProprietàStatisticsFile
StringEncryptionProprietàStringEncryption
SuppressIldasmProprietàSuppressIldasm
SuppressReflectionProprietàSuppressReflection
TakeFilesProprietàBabelTakeFiles
TamperingDetectionProprietàTamperingDetection
TargetAssemblyNameProprietàTargetAssemblyName
ToolExeProprietàBabelExe
ToolPathProprietàBabelPath
TraceProprietàTrace
TrustedBundle 12.0ProprietàTrustedBundle
TrustedSigner 12.0ProprietàTrustedSigner (più impronte separate da ;)
TrustedTeam 12.0ProprietàTrustedTeam
UnicodeNormalizationProprietàUnicodeNormalization
UseProprietàUse
ValueEncryptionProprietàValueEncryption
VerboseLevelProprietàVerboseLevel
VirtualFunctionsProprietàVirtualFunctions
WarningsAsErrorsProprietàBabelWarningsAsErrors
WarningsAsInfosProprietàBabelWarningsAsInfos
XapCompressionLevelProprietàXapCompressionLevel
XmlDocFilesElemento@(XmlDocumentationFile)
XmlRulesProprietàXmlRules

Impostare l’algoritmo di cifratura delle stringhe

La proprietà StringEncryption del pacchetto abilita la cifratura delle stringhe e seleziona l’algoritmo, esattamente come l’opzione --stringencryption della riga di comando. I valori accettati sono xor, hash, stream e custom (vedi Cifratura delle stringhe per una descrizione di ciascuno). Il valore booleano true abilita la cifratura delle stringhe con l’algoritmo predefinito, mentre il nome di un algoritmo la abilita e seleziona quell’algoritmo.

Per esempio, per cifrare le stringhe con l’algoritmo STREAM (cifratura autenticata per singola stringa, interamente gestito, sicuro con AOT, trimming e FIPS, e supportato da .NET Framework fino a .NET 10, compresi Android, iOS e MAUI), aggiungi al tuo file di progetto:

<PropertyGroup> <StringEncryption>stream</StringEncryption> </PropertyGroup>

L’algoritmo STREAM Ultimate non è incluso nelle edizioni inferiori: con quelle, stream ripiega sull’algoritmo predefinito.

Nei progetti .NET Android, iOS e MAUI, esegui l’offuscamento come passaggio di sola cifratura delle stringhe, così i nomi dei tipi e dei membri restano intatti per lo strato di interoperabilità della piattaforma.

Last updated on