Babel Obfuscator Plugins

Babel Obfuscator provides support for custom plug-ins that enable users to extend the functionality of the obfuscator beyond what is provided out of the box. With a custom plugin, you can:

  • You can create your string and value encryption algorithms

  • Rename Symbols like types, methods, properties, events and fields

  • Merge custom code into your assembly

  • Define obfuscation rules by querying the assembly metadata

  • Change assembly code

  • And much more…

Custom plugins can be developed using the .NET framework and integrated into Babel using the plugin management interface.

Code Samples

Several Babel plugins are available on GitHub, and their source code is included. Users interested in implementing a custom plugin can refer to these sample plugins as a starting point. To download the solution containing all the plugin projects, users can use the git command:

git clone https://github.com/babelfornet/BabelPlugins.git

This allows users to explore the code and modify the plugins to fit their specific needs.

Using Plugin at Command Line

Babel can accept a list of plugin files at the command line. To specify one or more plugin files at the babel.exe command line, you can use the --plugin switch followed by the full path to the plugin file:

babel MyApp.exe --plugin CustomPlugin1.dll --plugin CustomPlugin2.dll

It is possible to pass arguments to plugins using the command line switch --argument

babel MyTarget.exe --plugin CustomPlugin1.dll --plugin CustomPlugin2.dll
--argument arg1=value1 --argument arg2=value2

The arguments are defined as key-value pairs. Multiple --argument switches can be used to specify several arguments.

Using Plugin in MSBuild Babel Task

If you are using the MSBuild Babel task, you can specify a list of plugins by adding the Plugins attribute to the Babel task as follow:

 <ItemGroup>
   <BabelPlugin Include="DesEncrypt.dll"/>
   <BabelPlugin Include="LicenseInjector.dll"/>
 </ItemGroup>
 <Babel
   Plugins="@(BabelPlugin)"
   PluginsArguments="arg1=value1;arg2=value2" />

The PluginArguments property of the Babel task allows you to specify plugin arguments for all plugins. The list of plugin arguments is represented by a sequence of key-value pairs separated by a semicolon.

Using Plugins From Babel UI

To specify a plugin for a target assembly in the Babel Obfuscator user interface, you can follow these steps:

  1. Open the Babel Obfuscator user interface and load your target assembly.

  2. Select the target assembly in the Input Grid.

  3. Click + icon located to the left of the row corresponding to the primary assembly, and select the Plugins tab under the obfuscation target.

  4. Click the ... button and browse for the plugin file.

  5. Once the plugin file is selected, you can customize its options and arguments in the plugin properties panel.

By pressing the edit icon on the Plugins, a popup dialog will be displayed where the user can enter the input values for each plugin argument associated with the selected plugin.

Last updated