Skip to Content
Nueva versión 12 disponible 🎉
ObfuscatorPaquete NuGetReferencia del paquete

Referencia del paquete

Todas las propiedades, los elementos y los destinos de MSBuild que define el paquete Babel.Obfuscator, y la asignación entre las propiedades del paquete y los atributos de la tarea Babel.

Propiedades del paquete

Las propiedades siguientes controlan el propio paquete. Los ajustes de ofuscación figuran en la tabla Asignación de propiedades.

PropiedadPredeterminadoDescripción
BabelEnabledtrueInterruptor general. Cuando es false, no se ejecuta ningún destino de Babel, incluidas las adaptaciones de la publicación.
BabelPublishEnabled$(BabelEnabled)Indica si los ensamblados combinados e incrustados se quitan del conjunto de publicación.
BabelUpdateDependencyFile$(BabelEnabled)Indica si los archivos .deps.json de compilación y de publicación se actualizan después de la ofuscación.
BabelOverrideCompiletrueIndica si el paquete inserta el paso de ofuscación después de CoreCompile. Establézcala en false para conectar usted mismo el destino ObfuscateBuild.
RunBabelAfterBuildfalseCuando es true, Babel se ejecuta al final de la compilación sobre $(TargetPath) en lugar de sobre el ensamblado intermedio.
BabelBeforeTargetsEjecuta el paso de ofuscación antes del destino indicado y desactiva la ubicación predeterminada.
BabelAfterTargetsEjecuta el paso de ofuscación después del destino indicado y desactiva la ubicación predeterminada.
BabelPackageDirraíz del paqueteCarpeta raíz del paquete extraído.
BabelTaskDirsegún el hostCarpeta desde la que se cargan la tarea Babel y las herramientas; consulte Selección de las herramientas de compilación.
BabelPath$(BabelTaskDir)Carpeta del ejecutable de Babel que se ejecuta (atributo ToolPath de la tarea).
BabelExeNombre del ejecutable de Babel, babel.exe o babel.dll (atributo ToolExe de la tarea).
BabelInputFileensamblado intermedioEnsamblado que se ofusca. Lo calcula el paquete; reemplácelo en un destino de ajustes.
BabelOutputFile$(BabelInputFile)Salida ofuscada. La calcula el paquete; reemplácela en un destino de ajustes.
BabelLicensebabel.licenses encontrado en la carpeta del proyecto o en una carpeta superiorRuta del archivo de licencia, clave de licencia o clave de usuario con el prefijo floating:.
BabelLicenseDirCarpeta en la que se encontró babel.licenses, establecida por el paquete.
SymbolsRenamingtrueActiva o desactiva a la vez todas las funciones de renombrado.
NoConfigurationtrueIndica si Babel ignora su archivo de configuración.
GenerateDebugtrue cuando existe un PDBIndica si se generan símbolos de depuración para el ensamblado ofuscado.
CopyOutputSymbolsToPublishDirectoryfalse en ReleasePropiedad estándar del SDK; el paquete la desactiva en Release para que no se publiquen los archivos PDB.
BabelProvideCommandLineArgsfalseEscribe la línea de comandos de Babel en el registro y en el elemento @(BabelCommandLineArgs).
BabelWarningsAsErrorsCódigos de advertencia que se notifican como errores. Establézcala en W00000 para que fallen las compilaciones que se ejecutan en modo de evaluación.
BabelWarningsAsInfosCódigos de advertencia que se notifican como mensajes informativos.
BabelWarningsToIgnoreCódigos de advertencia que se suprimen.
BabelExitCodeSalida: código de salida de la tarea Babel, disponible después de CoreObfuscate.

Elementos del paquete

ElementoDescripción
BabelRulesArchivos de reglas XML. El archivo babelRules.xml de la carpeta del proyecto se añade automáticamente.
MergeAssemblyEnsamblados que se combinan con el ensamblado de destino.
EmbedAssemblyEnsamblados que se incrustan en el ensamblado de destino.
MapInFileArchivos map XML de ensamblados ya ofuscados.
BabelPluginEnsamblados de complementos que se cargan.
BabelSearchDirectoriesDirectorios de búsqueda de ensamblados. Se calculan a partir de las referencias del proyecto; reemplácelos o amplíelos en un destino de ajustes.
BabelTargetReferencesEntradas de búsqueda adicionales que se pasan como referencias.
AddReferencesEnsamblados que se añaden como referencias del ensamblado ofuscado.
SatelliteAssemblyEnsamblados satélite que se procesan.
XmlDocumentationFileArchivos de documentación XML que se procesan junto con el ensamblado.
BabelCommandLineArgsSalida: la línea de comandos pasada a Babel, cuando BabelProvideCommandLineArgs es true.

Destinos

DestinoDescripción
ObfuscateBuildEl paso de ofuscación insertado en la compilación. Ejecuta ObfuscateSettings y después Obfuscate.
ObfuscateSettingsPrepara la configuración de la tarea Babel ejecutando los destinos de ajustes que figuran a continuación.
ObfuscateDefaultSettingsAplica los valores predeterminados de renombrado, busca el archivo de licencia, añade babelRules.xml y construye los directorios de búsqueda.
ObfuscateFrameworkSettingsSelecciona el ensamblado que se procesa: el ensamblado intermedio, o $(TargetPath) cuando RunBabelAfterBuild es true.
ObfuscateSetupBabelFilesEstablece BabelInputFile y BabelOutputFile, y activa GenerateDebug cuando existe un PDB.
ObfuscateCustomSettings, SetupObfuscate, ConfigureBabelDestinos vacíos: redefínalos para ajustar la configuración calculada antes de que se ejecute Babel.
ObfuscateEjecuta BeforeObfuscate, CoreObfuscate y AfterObfuscate.
BeforeObfuscateDestino vacío: redefínalo para ejecutar tareas justo antes de la tarea Babel.
CoreObfuscateEjecuta la tarea Babel. No lo redefina.
AfterObfuscateDestino vacío: redefínalo para ejecutar tareas justo después de la tarea Babel.
UpdateBabelBuildDependencyFileDespués de GenerateBuildDependencyFile: quita del .deps.json de compilación los ensamblados combinados e incrustados y el paquete.
UpdateBabelPublishDependencyFileDespués de GeneratePublishDependencyFile: lo mismo para el .deps.json de publicación.
UpdateBabelFilesToPublishDespués de ComputeFilesToPublish: quita del conjunto de publicación los ensamblados combinados e incrustados.
OverrideCompileWithBabelDespués de PrepareForBuild: inserta ObfuscateBuild después de CoreCompile, salvo que el paso se haya movido o que se trate de una compilación en tiempo de diseño.
EnableObfuscationFlagLo desencadena la compilación: activa ObfuscateBuild solo cuando el compilador se ha ejecutado realmente.

Asignación de propiedades

La tabla asigna cada atributo de la tarea Babel a la propiedad o al elemento de MSBuild que lee el paquete. Las propiedades aceptan los mismos valores que la opción correspondiente de la línea de comandos. Los atributos marcados con 12.0 se añadieron en la versión 12.

Atributo de la tarea BabelTipoPropiedad o elemento del paquete
AddReferencesElemento@(AddReferences)
AndroidSigningKeyAliasPropiedadAndroidSigningKeyAlias
AndroidSigningKeyPassPropiedadAndroidSigningKeyPass
AndroidSigningKeyStorePropiedadAndroidSigningKeyStore
AndroidSigningStorePassPropiedadAndroidSigningStorePass
BabelDirectoryPropiedadBabelDirectory
CleanAttributesPropiedadCleanAttributes
ConstRemovalPropiedadConstRemoval
ControlFlowIterationsPropiedadControlFlowIterations (ILIterations se acepta como alias)
ControlFlowObfuscationPropiedadControlFlowObfuscation
CopyAttributesPropiedadMergeCopyAttributes
DbgHelpDllDirPropiedadDbgHelpDllDir
DeadCodeEliminationPropiedadDeadCodeElimination
DebuggingProtectionPropiedadDebuggingProtection
DependenciesManifestPropiedadDependenciesManifest
DetectIfObfuscatedPropiedadDetectIfObfuscated
DisgregateRemovalPropiedadDisgregateRemoval
DynamicProxyPropiedadDynamicProxy
DynamicProxyCallFiltersPropiedadDynamicProxyCallFilters
EmbedAssembliesElemento@(EmbedAssembly)
EmitInvalidOpcodesPropiedadEmitInvalidOpcodes
EnableObfuscationAgentPropiedadEnableObfuscationAgent
EnumRemovalPropiedadEnumRemoval
FlattenNamespacesPropiedadFlattenNamespaces
FrameworkPropiedadFramework
GenerateDebugPropiedadGenerateDebug
GenerateLogFilePropiedadGenerateLogFile
GenerateMapOutFilePropiedadGenerateMapOutFile
InlineExpansionPropiedadInlineExpansion
InputFilePropiedadBabelInputFile
InstrumentPropiedadBabelInstrument
InstrumentEmptyMethodsPropiedadInstrumentEmptyMethods
InternalizePropiedadMergeInternalize
KeyContainerPropiedadKeyContainerName
KeyFilePropiedadKeyOriginatorFile
KeyPwdPropiedadSigningCertPassword
LicensePropiedadBabelLicense
LogFilePropiedadBabelLogFile
MakeProjectPropiedadMakeBabelProjectFile
MapInFilesElemento@(MapInFile)
MapOutFilePropiedadBabelMapOutFile
MergeAssembliesElemento@(MergeAssembly)
ModuleInitializerPropiedadModuleInitializer
ModuleInitializerTargetPropiedadModuleInitializerTarget
ModuleVersionIdPropiedadModuleVersionId
MsilEncryptionPropiedadMsilEncryption
NameLengthPropiedadNameLength
NamePrefixPropiedadNamePrefix
NoConfigurationPropiedadNoConfiguration
NoWarningsPropiedadBabelWarningsToIgnore
ObfuscateEventsPropiedadObfuscateEvents
ObfuscateFieldsPropiedadObfuscateFields
ObfuscateMethodsPropiedadObfuscateMethods
ObfuscateParametersPropiedadObfuscateParameters
ObfuscatePropertiesPropiedadObfuscateProperties
ObfuscateTypesPropiedadObfuscateTypes
ObfuscateXamlPropiedadObfuscateXaml
OutputFilePropiedadBabelOutputFile
OverloadedRenamingPropiedadOverloadedRenaming
PdbFilePropiedadPdbFile
PdbPwdPropiedadPdbPwd
PluginsElemento@(BabelPlugin)
PluginsArgumentsPropiedadPluginsArguments
ProvideCommandLineArgsPropiedadBabelProvideCommandLineArgs
RandomSeedPropiedadRandomSeed
ReferencesElemento@(BabelTargetReferences)
RemoveFilesPropiedadBabelRemoveFiles
ResourceEncryptionPropiedadResourceEncryption
RulesFilesElemento@(BabelRules)
SatelliteAssembliesElemento@(SatelliteAssembly)
SealClassesPropiedadSealClasses
SearchDirectoriesElemento@(BabelSearchDirectories)
SearchSatelliteAssembliesPropiedadSearchSatelliteAssemblies
ShowLogoPropiedadShowLogo
ShowStatisticsPropiedadShowStatistics
SingleFilePropiedadPublishSingleFile (propiedad estándar del SDK)
SkipFilesPropiedadBabelSkipFiles
StatisticsFilePropiedadStatisticsFile
StringEncryptionPropiedadStringEncryption
SuppressIldasmPropiedadSuppressIldasm
SuppressReflectionPropiedadSuppressReflection
TakeFilesPropiedadBabelTakeFiles
TamperingDetectionPropiedadTamperingDetection
TargetAssemblyNamePropiedadTargetAssemblyName
ToolExePropiedadBabelExe
ToolPathPropiedadBabelPath
TracePropiedadTrace
TrustedBundle 12.0PropiedadTrustedBundle
TrustedSigner 12.0PropiedadTrustedSigner (varias huellas digitales separadas por ;)
TrustedTeam 12.0PropiedadTrustedTeam
UnicodeNormalizationPropiedadUnicodeNormalization
UsePropiedadUse
ValueEncryptionPropiedadValueEncryption
VerboseLevelPropiedadVerboseLevel
VirtualFunctionsPropiedadVirtualFunctions
WarningsAsErrorsPropiedadBabelWarningsAsErrors
WarningsAsInfosPropiedadBabelWarningsAsInfos
XapCompressionLevelPropiedadXapCompressionLevel
XmlDocFilesElemento@(XmlDocumentationFile)
XmlRulesPropiedadXmlRules

Establecer el algoritmo de cifrado de cadenas

La propiedad StringEncryption del paquete activa el cifrado de cadenas y selecciona el algoritmo, exactamente igual que la opción --stringencryption de la línea de comandos. Los valores aceptados son xor, hash, stream y custom (consulte Cifrado de cadenas para ver la descripción de cada uno). El valor booleano true activa el cifrado de cadenas con el algoritmo predeterminado, mientras que un nombre de algoritmo lo activa y además selecciona ese algoritmo.

Por ejemplo, para cifrar las cadenas con el algoritmo STREAM (cifrado autenticado cadena por cadena, totalmente administrado, compatible con AOT, recorte y FIPS, y admitido desde .NET Framework hasta .NET 10, incluidos Android, iOS y MAUI), añada lo siguiente a su archivo de proyecto:

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

El algoritmo STREAM Ultimate no está incluido en las ediciones inferiores: con ellas, stream recurre al algoritmo predeterminado.

En los proyectos .NET para Android, iOS y MAUI, ejecute la ofuscación como una pasada que solo cifra las cadenas, de modo que los nombres de los tipos y de los miembros permanezcan intactos para la capa de interoperabilidad de la plataforma.

Last updated on