Skip to content

Name Protection

Sam Harwood edited this page Jul 21, 2018 · 1 revision

ID: rename
Preset: Minimum

This protection obfuscate the symbols' name so the decompiled source code can neither be compiled nor read.

Parameters

mode: This parameter define the way Neo ConfuserEx renames symbols. Supported values are:

  • empty: Neo ConfuserEx would rename all symbols to a empty string.
    Expect many problems when using this mode.

  • unicode: Neo ConfuserEx would rename symbols to Unicode unreadable characters.
    Reflection may not work in this mode.

  • ascii: Neo ConfuserEx would rename symbols to readable ASCII characters.
    Reflection may not work in this mode.

  • letters: Neo ConfuserEx would rename symbols to English letters.

  • decodable: Neo ConfuserEx would rename symbols to decodable string. The obfuscated name mapping would be saved to output folder in the file "symbols.map".

  • sequential: Neo ConfuserEx would rename symbols to sequential string. The obfuscated name mapping would be saved to output folder in the file "symbols.map".

  • reversible: Neo ConfuserEx would encrypt the symbols. The obfuscated names could be decoded by providing the password used in obfuscation.

  • debug: Neo ConfuserEx would add an underscore before the symbols. Not intended for production use.

Default is unicode.

Other parameters :

  • password: This parameter is a string value, indicates the password ConfuserEx should use to encrypt the symbol names when reversible mode is used. Only effective on modules. Default is null.

  • renameArgs: This parameter is a boolean value, indicates whether ConfuserEx should remove the name of methods' parameters. Default is true.

  • renEnum: This parameter is a boolean value, indicates whether ConfuserEx should change the name of enum values. Default is false.

  • flatten: This parameter is a boolean value, indicates whether ConfuserEx should flatten the types by removing the namespaces. Default is true.

  • forceRen: This parameter is a boolean value, indicates whether ConfuserEx should rename the symbols even if the analyzer shows that it should not be renamed. Default is false.

  • renPublic: This parameter is a boolean value, indicates whether ConfuserEx should rename the symbols even if the item is visible outside the assembly. Default is false.

  • renPdb: This parameter is a boolean value, indicates whether ConfuserEx should rename the variable names and the file names in PDB. Default is false.

  • renXaml: This parameter is a boolean value, indicates whether ConfuserEx should rename the XAML file name. Default is true.

Usage in CLI

<protection id="rename">
  <argument name="mode" value="unicode" />
  <argument name="renEnum" value="true" />
</protection>