Command Line

Babel Obfuscator provides a command line tool on Windows, Mac and Linux. This paragraph will describe how to use Babel Obfuscator from the command line.

Babel Obfuscator is available as a command line tool, which makes it easy to integrate into your build pipeline and automate the obfuscation process. The command line tool, named "babel", allows you to easily specify the input assemblies, output file, and various obfuscation options. To start babel from the command line, open the PowerShell on Windows or the Terminal on Mac OS and enter:

> babel

The "babel" command launches the babel executable command line tool. This command accepts the following syntax:

babel <primary assembly source> [<other assemblies>...] [options]

The first parameter, <primary assembly source>, is the target assembly (or primary assembly) you want to obfuscate and is a mandatory parameter.

The [<other assemblies>...] is an optional list of assemblies that will be merged with the primary assembly.

The [options] are a list of command line switches to configure Babel Obfuscator. Each command line switch is prefixed by a double hyphen, for example:


Command line parameters can be bundled using the short syntax for command line options. Use a single hyphen to enter multiple parameters in a bundled expression:

babel myapp.exe --types --methods --properties --fields --events

It is equivalent to:

babel myapp.exe -tmpfe

To show all available command line switches enter the command line:

babel --help

You can show a detailed description of every command line switch by entering:

babel --help [command name]

For example

babel --help controlflow

will output detailed help for the controlflow command line switch:

> babel --help controlflow
controlflow (nocontrolflow, no-controlflow, control-flow, no-control-flow, i)
usage: --[no]controlflow
  Enable ([no]disable) MSIL control flow obfuscation (default: disabled)
  Use this option to alter the method control flow. 
  Key-value pairs can optionally be entered to configure code scrambling:

Produces verifiable MSIL code

  goto=[on/off]    Whether to insert irrelevant branches
  switch=[on/off]  Whether to enable switch scrambling
  case=[on/off]    Whether to hide case constants
  if=[on/off]      Whether to enable if scrambling
  call=[on/off]    Whether to enable random calls
  value=[on/off]   Whether to use value encryption
  token=[on/off]   Whether to enable emission of method tokens

Produces not verifiable MSIL code
  underflow=[on/off]  Whether to enable stack underflow ()

--controlflow switch=on --controlflow case=on

This option can be entered multiple times. 

Last updated