Babel Obfuscator
HomeDocumentationShop
  • Introduction
    • General Features
  • Getting Started
    • Install
    • Product Activation
  • Command Line
    • Command Line Reference
      • Miscellaneous
      • Input Files
      • Output Files
      • Plugins
      • Merge and Embed
      • Renaming
      • Control Flow Obfuscation
      • Encryption and Protection
      • Code Generation
  • MSBuild Task
    • Babel Task Reference
    • Customizing Intellisense
  • NuGet Package
    • NuGet Pakage Reference
  • User Interface
    • Obfuscation
    • Tools
    • Custom Themes
  • Obfuscation Rules
    • XML Rules
      • Example Rules
    • Custom Attributes
    • Obfuscation Agent
  • Merge and Embed
    • Assembly Merging
    • Assembly Embedding
  • Symbols Renaming
    • XML Map Files
    • Cross Assembly Renaming
    • XAML Renaming
    • Decoding Stack Traces
  • String Encryption
    • Custom String Encryption
  • Control Flow Obfuscation
  • Code Encryption
    • External Code Files
    • Password Protected Code
    • Dynamic Code
  • Dynamic Proxy
  • Resource Encryption
  • Value And Array Encryption
  • Tampering Detection
  • Anti Debugging
  • Enhancing Code Security
  • Optimizations
    • Dead Code Removal
    • Metadata Optimizations
    • Code Optimizations
  • Appendix
  • Examples
    • Examples
    • General Samples
      • ClickOnce Deploy
      • Detecting Babel Obfuscation
      • Obfuscate .NET MAUI
      • Blazor Web App
    • Code Encryption
      • Feature Based Licenses
    • Cross Assembly Renaming
      • Publish .NET App
    • Build Servers
      • GitHub Actions
      • Unit Tests
    • Babel Obfuscator NuGet
      • Android Application
  • Plugins
    • Babel Obfuscator Plugins
    • Encrypt Plugin
      • Getting Started
      • Source Code
Powered by GitBook
On this page
  • Code Samples
  • Using Plugin at Command Line
  • Using Plugin in MSBuild Babel Task
  • Using Plugins From Babel UI

Was this helpful?

  1. Plugins

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 1 year ago

Was this helpful?

BabelUI Plugins
BabelUI Plugin Arguments Dialog