Skip to Content
Nouvelle version 12 disponible 🎉
ObfuscatorPackage NuGetRéférence du package

Référence du package

Toutes les propriétés, tous les éléments et toutes les cibles MSBuild définis par le package Babel.Obfuscator, et la correspondance entre les propriétés du package et les attributs de la tâche Babel.

Propriétés du package

Les propriétés ci-dessous contrôlent le package lui-même. Les paramètres d’obfuscation figurent dans le tableau Correspondance des propriétés.

PropriétéValeur par défautDescription
BabelEnabledtrueInterrupteur général. Avec la valeur false, aucune cible Babel ne s’exécute, ajustements de publication compris.
BabelPublishEnabled$(BabelEnabled)Indique si les assemblies fusionnés et incorporés sont retirés de l’ensemble des fichiers à publier.
BabelUpdateDependencyFile$(BabelEnabled)Indique si les fichiers .deps.json du build et de la publication sont mis à jour après l’obfuscation.
BabelOverrideCompiletrueIndique si le package injecte l’étape d’obfuscation après CoreCompile. Réglez-la sur false pour raccorder vous-même la cible ObfuscateBuild.
RunBabelAfterBuildfalseAvec la valeur true, Babel s’exécute à la fin du build sur $(TargetPath) au lieu de l’assembly intermédiaire.
BabelBeforeTargetsExécute l’étape d’obfuscation avant la cible indiquée, ce qui désactive le placement par défaut.
BabelAfterTargetsExécute l’étape d’obfuscation après la cible indiquée, ce qui désactive le placement par défaut.
BabelPackageDirracine du packageDossier racine du package extrait.
BabelTaskDirselon l’hôteDossier d’où sont chargés la tâche Babel et les outils ; voir Sélectionner les outils de build.
BabelPath$(BabelTaskDir)Dossier de l’exécutable Babel à lancer (attribut de tâche ToolPath).
BabelExeNom de l’exécutable Babel, babel.exe ou babel.dll (attribut de tâche ToolExe).
BabelInputFileassembly intermédiaireAssembly à obfusquer. Calculé par le package ; remplacez-le dans une cible de paramètres.
BabelOutputFile$(BabelInputFile)Sortie obfusquée. Calculée par le package ; remplacez-la dans une cible de paramètres.
BabelLicensebabel.licenses trouvé dans le dossier du projet ou dans un dossier parentChemin du fichier de licence, clé de licence ou clé utilisateur floating:.
BabelLicenseDirDossier où babel.licenses a été trouvé, défini par le package.
SymbolsRenamingtrueActive ou désactive en une fois toutes les fonctionnalités de renommage.
NoConfigurationtrueIndique si Babel ignore son fichier de configuration.
GenerateDebugtrue lorsqu’un PDB existeIndique si les symboles de débogage sont générés pour l’assembly obfusqué.
CopyOutputSymbolsToPublishDirectoryfalse en ReleasePropriété standard du SDK ; le package la désactive en Release pour que les fichiers PDB ne soient pas publiés.
BabelProvideCommandLineArgsfalseÉcrit la ligne de commande de Babel dans le journal et dans l’élément @(BabelCommandLineArgs).
BabelWarningsAsErrorsCodes d’avertissement à signaler comme des erreurs. Réglez-la sur W00000 pour faire échouer les builds qui s’exécutent en mode d’évaluation.
BabelWarningsAsInfosCodes d’avertissement à signaler comme des messages d’information.
BabelWarningsToIgnoreCodes d’avertissement à ignorer.
BabelExitCodeSortie : code de sortie de la tâche Babel, disponible après CoreObfuscate.

Éléments du package

ÉlémentDescription
BabelRulesFichiers de règles XML. Le fichier babelRules.xml du dossier du projet est ajouté automatiquement.
MergeAssemblyAssemblies à fusionner dans l’assembly cible.
EmbedAssemblyAssemblies à incorporer dans l’assembly cible.
MapInFileFichiers de mappage XML d’assemblies déjà obfusqués.
BabelPluginAssemblies de plugins à charger.
BabelSearchDirectoriesRépertoires de recherche des assemblies. Calculés à partir des références du projet ; remplacez-les ou complétez-les dans une cible de paramètres.
BabelTargetReferencesEntrées de recherche supplémentaires passées comme références.
AddReferencesAssemblies à ajouter comme références de l’assembly obfusqué.
SatelliteAssemblyAssemblies satellites à traiter.
XmlDocumentationFileFichiers de documentation XML à traiter en même temps que l’assembly.
BabelCommandLineArgsSortie : la ligne de commande passée à Babel, lorsque BabelProvideCommandLineArgs vaut true.

Cibles

CibleDescription
ObfuscateBuildL’étape d’obfuscation injectée dans le build. Exécute ObfuscateSettings puis Obfuscate.
ObfuscateSettingsPrépare la configuration de la tâche Babel en exécutant les cibles de paramètres ci-dessous.
ObfuscateDefaultSettingsApplique les valeurs par défaut du renommage, recherche le fichier de licence, ajoute babelRules.xml et établit les répertoires de recherche.
ObfuscateFrameworkSettingsSélectionne l’assembly à traiter : l’assembly intermédiaire, ou $(TargetPath) lorsque RunBabelAfterBuild vaut true.
ObfuscateSetupBabelFilesDéfinit BabelInputFile et BabelOutputFile, et active GenerateDebug lorsqu’un PDB existe.
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabelCibles vides, à redéfinir pour ajuster la configuration calculée avant l’exécution de Babel.
ObfuscateExécute BeforeObfuscate, CoreObfuscate et AfterObfuscate.
BeforeObfuscateCible vide, à redéfinir pour exécuter des tâches juste avant la tâche Babel.
CoreObfuscateExécute la tâche Babel. Ne la redéfinissez pas.
AfterObfuscateCible vide, à redéfinir pour exécuter des tâches juste après la tâche Babel.
UpdateBabelBuildDependencyFileAprès GenerateBuildDependencyFile : retire les assemblies fusionnés et incorporés, ainsi que le package, du fichier .deps.json du build.
UpdateBabelPublishDependencyFileAprès GeneratePublishDependencyFile : fait de même pour le fichier .deps.json de la publication.
UpdateBabelFilesToPublishAprès ComputeFilesToPublish : retire les assemblies fusionnés et incorporés de l’ensemble des fichiers à publier.
OverrideCompileWithBabelAprès PrepareForBuild : insère ObfuscateBuild après CoreCompile, sauf si l’étape a été déplacée ou si le build est un build au moment de la conception.
EnableObfuscationFlagDéclenchée par la compilation : n’active ObfuscateBuild que si le compilateur s’est réellement exécuté.

Correspondance des propriétés

Le tableau associe chaque attribut de la tâche Babel à la propriété ou à l’élément MSBuild que lit le package. Les propriétés acceptent les mêmes valeurs que l’option de ligne de commande correspondante. Les attributs signalés par 12.0 ont été ajoutés dans la version 12.

Attribut de la tâche BabelNaturePropriété ou élément du package
AddReferencesÉlément@(AddReferences)
AndroidSigningKeyAliasPropriétéAndroidSigningKeyAlias
AndroidSigningKeyPassPropriétéAndroidSigningKeyPass
AndroidSigningKeyStorePropriétéAndroidSigningKeyStore
AndroidSigningStorePassPropriétéAndroidSigningStorePass
BabelDirectoryPropriétéBabelDirectory
CleanAttributesPropriétéCleanAttributes
ConstRemovalPropriétéConstRemoval
ControlFlowIterationsPropriétéControlFlowIterations (ILIterations est accepté comme alias)
ControlFlowObfuscationPropriétéControlFlowObfuscation
CopyAttributesPropriétéMergeCopyAttributes
DbgHelpDllDirPropriétéDbgHelpDllDir
DeadCodeEliminationPropriétéDeadCodeElimination
DebuggingProtectionPropriétéDebuggingProtection
DependenciesManifestPropriétéDependenciesManifest
DetectIfObfuscatedPropriétéDetectIfObfuscated
DisgregateRemovalPropriétéDisgregateRemoval
DynamicProxyPropriétéDynamicProxy
DynamicProxyCallFiltersPropriétéDynamicProxyCallFilters
EmbedAssembliesÉlément@(EmbedAssembly)
EmitInvalidOpcodesPropriétéEmitInvalidOpcodes
EnableObfuscationAgentPropriétéEnableObfuscationAgent
EnumRemovalPropriétéEnumRemoval
FlattenNamespacesPropriétéFlattenNamespaces
FrameworkPropriétéFramework
GenerateDebugPropriétéGenerateDebug
GenerateLogFilePropriétéGenerateLogFile
GenerateMapOutFilePropriétéGenerateMapOutFile
InlineExpansionPropriétéInlineExpansion
InputFilePropriétéBabelInputFile
InstrumentPropriétéBabelInstrument
InstrumentEmptyMethodsPropriétéInstrumentEmptyMethods
InternalizePropriétéMergeInternalize
KeyContainerPropriétéKeyContainerName
KeyFilePropriétéKeyOriginatorFile
KeyPwdPropriétéSigningCertPassword
LicensePropriétéBabelLicense
LogFilePropriétéBabelLogFile
MakeProjectPropriétéMakeBabelProjectFile
MapInFilesÉlément@(MapInFile)
MapOutFilePropriétéBabelMapOutFile
MergeAssembliesÉlément@(MergeAssembly)
ModuleInitializerPropriétéModuleInitializer
ModuleInitializerTargetPropriétéModuleInitializerTarget
ModuleVersionIdPropriétéModuleVersionId
MsilEncryptionPropriétéMsilEncryption
NameLengthPropriétéNameLength
NamePrefixPropriétéNamePrefix
NoConfigurationPropriétéNoConfiguration
NoWarningsPropriétéBabelWarningsToIgnore
ObfuscateEventsPropriétéObfuscateEvents
ObfuscateFieldsPropriétéObfuscateFields
ObfuscateMethodsPropriétéObfuscateMethods
ObfuscateParametersPropriétéObfuscateParameters
ObfuscatePropertiesPropriétéObfuscateProperties
ObfuscateTypesPropriétéObfuscateTypes
ObfuscateXamlPropriétéObfuscateXaml
OutputFilePropriétéBabelOutputFile
OverloadedRenamingPropriétéOverloadedRenaming
PdbFilePropriétéPdbFile
PdbPwdPropriétéPdbPwd
PluginsÉlément@(BabelPlugin)
PluginsArgumentsPropriétéPluginsArguments
ProvideCommandLineArgsPropriétéBabelProvideCommandLineArgs
RandomSeedPropriétéRandomSeed
ReferencesÉlément@(BabelTargetReferences)
RemoveFilesPropriétéBabelRemoveFiles
ResourceEncryptionPropriétéResourceEncryption
RulesFilesÉlément@(BabelRules)
SatelliteAssembliesÉlément@(SatelliteAssembly)
SealClassesPropriétéSealClasses
SearchDirectoriesÉlément@(BabelSearchDirectories)
SearchSatelliteAssembliesPropriétéSearchSatelliteAssemblies
ShowLogoPropriétéShowLogo
ShowStatisticsPropriétéShowStatistics
SingleFilePropriétéPublishSingleFile (propriété standard du SDK)
SkipFilesPropriétéBabelSkipFiles
StatisticsFilePropriétéStatisticsFile
StringEncryptionPropriétéStringEncryption
SuppressIldasmPropriétéSuppressIldasm
SuppressReflectionPropriétéSuppressReflection
TakeFilesPropriétéBabelTakeFiles
TamperingDetectionPropriétéTamperingDetection
TargetAssemblyNamePropriétéTargetAssemblyName
ToolExePropriétéBabelExe
ToolPathPropriétéBabelPath
TracePropriétéTrace
TrustedBundle 12.0PropriétéTrustedBundle
TrustedSigner 12.0PropriétéTrustedSigner (plusieurs empreintes séparées par ;)
TrustedTeam 12.0PropriétéTrustedTeam
UnicodeNormalizationPropriétéUnicodeNormalization
UsePropriétéUse
ValueEncryptionPropriétéValueEncryption
VerboseLevelPropriétéVerboseLevel
VirtualFunctionsPropriétéVirtualFunctions
WarningsAsErrorsPropriétéBabelWarningsAsErrors
WarningsAsInfosPropriétéBabelWarningsAsInfos
XapCompressionLevelPropriétéXapCompressionLevel
XmlDocFilesÉlément@(XmlDocumentationFile)
XmlRulesPropriétéXmlRules

Définir l’algorithme de chiffrement des chaînes

La propriété de package StringEncryption active le chiffrement des chaînes et sélectionne l’algorithme, exactement comme l’option de ligne de commande --stringencryption. Les valeurs acceptées sont xor, hash, stream et custom (voir Chiffrement des chaînes pour la description de chacune). La valeur booléenne true active le chiffrement des chaînes avec l’algorithme par défaut, tandis qu’un nom d’algorithme l’active et sélectionne cet algorithme.

Par exemple, pour chiffrer les chaînes avec l’algorithme STREAM (chiffrement authentifié chaîne par chaîne, entièrement managé, compatible avec FIPS, la compilation AOT et le découpage ou trimming, pris en charge de .NET Framework à .NET 10, y compris Android, iOS et MAUI), ajoutez à votre fichier de projet :

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

L’algorithme STREAM Ultimate n’est pas inclus dans les éditions inférieures : avec celles-ci, stream se rabat sur l’algorithme par défaut.

Dans les projets .NET Android, iOS et MAUI, exécutez l’obfuscation comme une passe limitée au chiffrement des chaînes, afin que les noms des types et des membres restent intacts pour la couche d’interopérabilité de la plateforme.

Last updated on