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éfaut | Description |
|---|---|---|
BabelEnabled | true | Interrupteur 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. |
BabelOverrideCompile | true | Indique si le package injecte l’étape d’obfuscation après CoreCompile. Réglez-la sur false pour raccorder vous-même la cible ObfuscateBuild. |
RunBabelAfterBuild | false | Avec la valeur true, Babel s’exécute à la fin du build sur $(TargetPath) au lieu de l’assembly intermédiaire. |
BabelBeforeTargets | Exécute l’étape d’obfuscation avant la cible indiquée, ce qui désactive le placement par défaut. | |
BabelAfterTargets | Exécute l’étape d’obfuscation après la cible indiquée, ce qui désactive le placement par défaut. | |
BabelPackageDir | racine du package | Dossier racine du package extrait. |
BabelTaskDir | selon l’hôte | Dossier 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). |
BabelExe | Nom de l’exécutable Babel, babel.exe ou babel.dll (attribut de tâche ToolExe). | |
BabelInputFile | assembly intermédiaire | Assembly à 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. |
BabelLicense | babel.licenses trouvé dans le dossier du projet ou dans un dossier parent | Chemin du fichier de licence, clé de licence ou clé utilisateur floating:. |
BabelLicenseDir | Dossier où babel.licenses a été trouvé, défini par le package. | |
SymbolsRenaming | true | Active ou désactive en une fois toutes les fonctionnalités de renommage. |
NoConfiguration | true | Indique si Babel ignore son fichier de configuration. |
GenerateDebug | true lorsqu’un PDB existe | Indique si les symboles de débogage sont générés pour l’assembly obfusqué. |
CopyOutputSymbolsToPublishDirectory | false en Release | Propriété standard du SDK ; le package la désactive en Release pour que les fichiers PDB ne soient pas publiés. |
BabelProvideCommandLineArgs | false | Écrit la ligne de commande de Babel dans le journal et dans l’élément @(BabelCommandLineArgs). |
BabelWarningsAsErrors | Codes d’avertissement à signaler comme des erreurs. Réglez-la sur W00000 pour faire échouer les builds qui s’exécutent en mode d’évaluation. | |
BabelWarningsAsInfos | Codes d’avertissement à signaler comme des messages d’information. | |
BabelWarningsToIgnore | Codes d’avertissement à ignorer. | |
BabelExitCode | Sortie : code de sortie de la tâche Babel, disponible après CoreObfuscate. |
Éléments du package
| Élément | Description |
|---|---|
BabelRules | Fichiers de règles XML. Le fichier babelRules.xml du dossier du projet est ajouté automatiquement. |
MergeAssembly | Assemblies à fusionner dans l’assembly cible. |
EmbedAssembly | Assemblies à incorporer dans l’assembly cible. |
MapInFile | Fichiers de mappage XML d’assemblies déjà obfusqués. |
BabelPlugin | Assemblies de plugins à charger. |
BabelSearchDirectories | Ré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. |
BabelTargetReferences | Entrées de recherche supplémentaires passées comme références. |
AddReferences | Assemblies à ajouter comme références de l’assembly obfusqué. |
SatelliteAssembly | Assemblies satellites à traiter. |
XmlDocumentationFile | Fichiers de documentation XML à traiter en même temps que l’assembly. |
BabelCommandLineArgs | Sortie : la ligne de commande passée à Babel, lorsque BabelProvideCommandLineArgs vaut true. |
Cibles
| Cible | Description |
|---|---|
ObfuscateBuild | L’étape d’obfuscation injectée dans le build. Exécute ObfuscateSettings puis Obfuscate. |
ObfuscateSettings | Prépare la configuration de la tâche Babel en exécutant les cibles de paramètres ci-dessous. |
ObfuscateDefaultSettings | Applique les valeurs par défaut du renommage, recherche le fichier de licence, ajoute babelRules.xml et établit les répertoires de recherche. |
ObfuscateFrameworkSettings | Sélectionne l’assembly à traiter : l’assembly intermédiaire, ou $(TargetPath) lorsque RunBabelAfterBuild vaut true. |
ObfuscateSetupBabelFiles | Définit BabelInputFile et BabelOutputFile, et active GenerateDebug lorsqu’un PDB existe. |
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabel | Cibles vides, à redéfinir pour ajuster la configuration calculée avant l’exécution de Babel. |
Obfuscate | Exécute BeforeObfuscate, CoreObfuscate et AfterObfuscate. |
BeforeObfuscate | Cible vide, à redéfinir pour exécuter des tâches juste avant la tâche Babel. |
CoreObfuscate | Exécute la tâche Babel. Ne la redéfinissez pas. |
AfterObfuscate | Cible vide, à redéfinir pour exécuter des tâches juste après la tâche Babel. |
UpdateBabelBuildDependencyFile | Après GenerateBuildDependencyFile : retire les assemblies fusionnés et incorporés, ainsi que le package, du fichier .deps.json du build. |
UpdateBabelPublishDependencyFile | Après GeneratePublishDependencyFile : fait de même pour le fichier .deps.json de la publication. |
UpdateBabelFilesToPublish | Après ComputeFilesToPublish : retire les assemblies fusionnés et incorporés de l’ensemble des fichiers à publier. |
OverrideCompileWithBabel | Aprè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. |
EnableObfuscationFlag | Dé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 Babel | Nature | Propriété ou élément du package |
|---|---|---|
AddReferences | Élément | @(AddReferences) |
AndroidSigningKeyAlias | Propriété | AndroidSigningKeyAlias |
AndroidSigningKeyPass | Propriété | AndroidSigningKeyPass |
AndroidSigningKeyStore | Propriété | AndroidSigningKeyStore |
AndroidSigningStorePass | Propriété | AndroidSigningStorePass |
BabelDirectory | Propriété | BabelDirectory |
CleanAttributes | Propriété | CleanAttributes |
ConstRemoval | Propriété | ConstRemoval |
ControlFlowIterations | Propriété | ControlFlowIterations (ILIterations est accepté comme alias) |
ControlFlowObfuscation | Propriété | ControlFlowObfuscation |
CopyAttributes | Propriété | MergeCopyAttributes |
DbgHelpDllDir | Propriété | DbgHelpDllDir |
DeadCodeElimination | Propriété | DeadCodeElimination |
DebuggingProtection | Propriété | DebuggingProtection |
DependenciesManifest | Propriété | DependenciesManifest |
DetectIfObfuscated | Propriété | DetectIfObfuscated |
DisgregateRemoval | Propriété | DisgregateRemoval |
DynamicProxy | Propriété | DynamicProxy |
DynamicProxyCallFilters | Propriété | DynamicProxyCallFilters |
EmbedAssemblies | Élément | @(EmbedAssembly) |
EmitInvalidOpcodes | Propriété | EmitInvalidOpcodes |
EnableObfuscationAgent | Propriété | EnableObfuscationAgent |
EnumRemoval | Propriété | EnumRemoval |
FlattenNamespaces | Propriété | FlattenNamespaces |
Framework | Propriété | Framework |
GenerateDebug | Propriété | GenerateDebug |
GenerateLogFile | Propriété | GenerateLogFile |
GenerateMapOutFile | Propriété | GenerateMapOutFile |
InlineExpansion | Propriété | InlineExpansion |
InputFile | Propriété | BabelInputFile |
Instrument | Propriété | BabelInstrument |
InstrumentEmptyMethods | Propriété | InstrumentEmptyMethods |
Internalize | Propriété | MergeInternalize |
KeyContainer | Propriété | KeyContainerName |
KeyFile | Propriété | KeyOriginatorFile |
KeyPwd | Propriété | SigningCertPassword |
License | Propriété | BabelLicense |
LogFile | Propriété | BabelLogFile |
MakeProject | Propriété | MakeBabelProjectFile |
MapInFiles | Élément | @(MapInFile) |
MapOutFile | Propriété | BabelMapOutFile |
MergeAssemblies | Élément | @(MergeAssembly) |
ModuleInitializer | Propriété | ModuleInitializer |
ModuleInitializerTarget | Propriété | ModuleInitializerTarget |
ModuleVersionId | Propriété | ModuleVersionId |
MsilEncryption | Propriété | MsilEncryption |
NameLength | Propriété | NameLength |
NamePrefix | Propriété | NamePrefix |
NoConfiguration | Propriété | NoConfiguration |
NoWarnings | Propriété | BabelWarningsToIgnore |
ObfuscateEvents | Propriété | ObfuscateEvents |
ObfuscateFields | Propriété | ObfuscateFields |
ObfuscateMethods | Propriété | ObfuscateMethods |
ObfuscateParameters | Propriété | ObfuscateParameters |
ObfuscateProperties | Propriété | ObfuscateProperties |
ObfuscateTypes | Propriété | ObfuscateTypes |
ObfuscateXaml | Propriété | ObfuscateXaml |
OutputFile | Propriété | BabelOutputFile |
OverloadedRenaming | Propriété | OverloadedRenaming |
PdbFile | Propriété | PdbFile |
PdbPwd | Propriété | PdbPwd |
Plugins | Élément | @(BabelPlugin) |
PluginsArguments | Propriété | PluginsArguments |
ProvideCommandLineArgs | Propriété | BabelProvideCommandLineArgs |
RandomSeed | Propriété | RandomSeed |
References | Élément | @(BabelTargetReferences) |
RemoveFiles | Propriété | BabelRemoveFiles |
ResourceEncryption | Propriété | ResourceEncryption |
RulesFiles | Élément | @(BabelRules) |
SatelliteAssemblies | Élément | @(SatelliteAssembly) |
SealClasses | Propriété | SealClasses |
SearchDirectories | Élément | @(BabelSearchDirectories) |
SearchSatelliteAssemblies | Propriété | SearchSatelliteAssemblies |
ShowLogo | Propriété | ShowLogo |
ShowStatistics | Propriété | ShowStatistics |
SingleFile | Propriété | PublishSingleFile (propriété standard du SDK) |
SkipFiles | Propriété | BabelSkipFiles |
StatisticsFile | Propriété | StatisticsFile |
StringEncryption | Propriété | StringEncryption |
SuppressIldasm | Propriété | SuppressIldasm |
SuppressReflection | Propriété | SuppressReflection |
TakeFiles | Propriété | BabelTakeFiles |
TamperingDetection | Propriété | TamperingDetection |
TargetAssemblyName | Propriété | TargetAssemblyName |
ToolExe | Propriété | BabelExe |
ToolPath | Propriété | BabelPath |
Trace | Propriété | Trace |
TrustedBundle 12.0 | Propriété | TrustedBundle |
TrustedSigner 12.0 | Propriété | TrustedSigner (plusieurs empreintes séparées par ;) |
TrustedTeam 12.0 | Propriété | TrustedTeam |
UnicodeNormalization | Propriété | UnicodeNormalization |
Use | Propriété | Use |
ValueEncryption | Propriété | ValueEncryption |
VerboseLevel | Propriété | VerboseLevel |
VirtualFunctions | Propriété | VirtualFunctions |
WarningsAsErrors | Propriété | BabelWarningsAsErrors |
WarningsAsInfos | Propriété | BabelWarningsAsInfos |
XapCompressionLevel | Propriété | XapCompressionLevel |
XmlDocFiles | Élément | @(XmlDocumentationFile) |
XmlRules | Proprié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.