Babel Task Reference

The Babel task has various attributes that allow you to configure the obfuscation process. These attributes control the command-line options available to the babel tool.

Miscellaneous

Task Attribute
Type
Description

License

String

Full path to the license file or list of license file search directories

DbgHelpDllDir

String

Set the path to the dbghelp.dll

DetectIfObfuscated

String

The action to take if the target assembly is already obfuscated

EnableObfuscationAgent

Boolean

Whether to enable the obfuscation Agent

NoConfig

Boolean

Whether to ignore configuration file

NoWarnings

String

List of warning message codes to ignore

QuickRules

String

RandomSeed

String

Initialize the random number generator used during obfuscation

SatelliteAssemblies

String

List of satellite assembly files

SearchSatelliteAssemblies

Boolean

Whether to enable the search of satellite assemblies

SearchDirectories

String

List of assembly search directories

ShowLogo

Boolean

Outputs Babel copyright information

ShowStatistics

Boolean Key=Value

TargetAssemblyName

String

Set target assembly name origin. Can be nochange, inputfilename, outputfilename, name=assemblyname

ToolExe

String

Executable name that can be babel.exe or babel.dll

ToolPath

String

Directory to babel tool

Trace

String

By passing a regular expression, it is possible to trace the symbols to spot the reason why they are not obfuscated. It can be used to debug obfuscation rules

Use

Key=Value

VerboseLevel

Int

Set the log verbosity level

WarningsAsErrors

String

Any messages that would ordinarily be reported as warnings are instead reported as errors by stopping the obfuscation process

WarningsAsInfos

String

Messages that would typically be reported as warnings will be displayed as informational messages, reducing their severity while still providing useful feedback

XmlRules

String

Input Files

Task Attribute
Type
Description

DependenciesManifest

String

The path to target assembly .deps.json file

InputFile

String

The path of the source target assembly

KeyFile

String

Path of the strong-name key file

KeyContainer

String

Key container name (Windows only)

KeyPwd

String

Strong name certificate password

MapInFiles

String

List of obfuscation rules files to process

RulesFiles

String

List of XML map files to process

Output Files

Task Attribute
Type
Description

GenerateLogFile

Boolean

Whether to generate an obfuscation log. The default log file name will be <target assembly>.log

GenerateMapOutFile

Boolean

Whether to generate an obfuscation map file. The default map file name will be <target assembly>.xml.map

LogFile

String

Obfuscation log file path

MapOutFile

String

Obfuscation map file path

OutputFile

String

Obfuscated target file path

PdbFile

String

Debug symbols file path

PdbPwd

String

Set debug symbol file password

Plugins

Task Attribute
Type
Description

Plugins

String

List of pluginf assembly files

PluginsArguments

Key=Value

Set plugin arguments as key-value pairs

Merge and Embed

Task Attribute
Type
Description

CopyAttributes

Boolean String

Whether assembly level attributes of merged assemblies are copied into the target assembly

EmbedAssemblies

String

List of assembly files to embed into the primary assembly

Internalize

Boolean

Whether merged types have their visibility restricted to the assembly

JsonManifest

Boolean

Whether to handle merged dependencies in JSON manifest

MergeAssemblies

String

List of assembly files to merge into the primary assembly

Renaming

Task Attribute
Type
Description

FlattenNamespaces

Boolean String

Whether to remove namespace information. Set type namespace name.

NameLength

Int String

Set the minimum obfuscated symbol's name length. Additionally, key-value pairs can be specified to assign the value to a particular symbol kind.

NamePrefix

String

Set obfuscated symbol name prefix. It can be $name or any string. Additionally, key-value pairs can be specified to assign the prefix to a particular symbol kind.

ObfuscateTypes

Boolean

Whether to obfuscate type names

ObfuscateEvents

Boolean

Whether to obfuscate event names

ObfuscateMethods

Boolean

Whether to obfuscate method names

ObfuscateParameters

Boolean

Whether to obfuscate parameter names

ObfuscateProperties

Boolean

Whether to obfuscate property names

ObfuscateFields

Boolean

Whether to obfuscate field names

ObfuscateXaml

Boolean Key=Value

(Boolean) Whether to obfuscate XAML/BAML code.

OverloadedRenaming

Boolean

Whether to overload symbol names

UnicodeNormalization

Boolean String

Whether to generate names using Unicode symbols. If disabled, ASCII characters will be used. Optionally a list of comma-separated characters can be specified.

VirtualFunctions

Boolean Key=Value

XmlDocFiles

String

List of XML documentation files to be processed

Control Flow Obfuscation

Task Attribute
Type
Description

ControlFlowObfuscation

Boolean Key=Value

ControlFlowIterations

Int

The number of iterations used in the control flow obfuscation algorithm

EmitInvalidOpcodes

Boolean

Whether to emit invalid MSIL op-codes

Encryption and Protection

Task Attribute
Type
Description

DebuggingProtection

Boolean

Whether to enable anti-debugging protection

DynamicProxy

Boolean Key=Value

DynamicProxyCallFilters

String

List of regular expressions that determine which method calls should be proxied.

MsilEncryption

Boolean String

Whether to enable code encryption. Optionally a given regular expression can be specified to encrypt the methods that match their signature

ResourceEncryption

Boolean Key=Value

StringEncryption

Boolean String

SuppressIldasm

Boolean

Whether to prevent ILDASM from disassembling the obfuscated target

SuppressReflection

Boolean

Whether to prevent tools using reflection API to inspect metadata

TamperingDetection

Boolean

Whether to enable anti-tampering protection

ValueEncryption

Boolean Key=Value

Optimizations

Task Attribute
Type
Description

CleanAttributes

Boolean String

Whether to clean up unwanted attributes. A list of regular expressions that filters out the full names of unwanted attribute types

ConstRemoval

Boolean

Whether to enable constant fields removal

DeadCodeElimination

Boolean

Whether to remove unused methods from the target assembly

DisgregateRemoval

Boolean

Whether to enable properties and event metadata removal

EnumRemoval

Boolean

Whether to enable System.Enum types removal

InlineExpansion

Boolean

Whether to enable the method's inline expansion

SealClasses

Boolean

Whether to seal classes whenever possible

Code Generation

Task Attribute
Type
Description

AddReference

String

List of assembly files to add as a reference in the primary assembly

Framework

String

Set the target assembly framework name

GenerateDebug

Boolean

Whether to enable debug symbols generation for the target assembly

Instrument

Boolean String

Whether to enable code instrumentation. A list of regular expressions that filters out the method's full names that will be instrumented

InstrumentEmptyMethods

Boolean

Whether to enable the instrumentation of methods with an empty body

ModuleInitializer

Boolean

Whether to add module initializer code to the primary assembly

ModuleInitializerTarget

String

Set module initializer target method name

ModuleVersionId

String

Set module MVID GUID string

Packages

Task Attribute
Type
Description

AndroidSigningKeyAlias

String

Android key store alias (APK Package)

AndroidSigningKeyPass

String

Android key store password (APK Package)

AndroidSigningKeyStore

String

Android key store file (APK Package)

AndroidSigningStorePass

String

Android store password (APK Package)

SkipFiles

String

A list of deployed assemblies files that should not be obfuscated

TakeFiles

String

A list of deployed assemblies files that should be obfuscated

RemoveFiles

String

A list of deployed assemblies that should be removed from the package

XapCompressionLevel

Int

Package compression level (XAP Package)

Last updated