Welcome to the Jumble!

Jumble is a free minimalistic obfuscator for CIL (.NET) assemblies which relies on identifier renaming and does not modify the assembly code in any other way. This means no performance degradation, unexpected behavior or debugging issues of the obfuscated code.

The project is still in early stage of development - the configuration, command line interface and output may be subject to change.

Download

Download - Jumble Application »

Download - Jumble Source Code from GitHub »

Usage

jumble.exe config.json

See also: Configuration file syntax.

Features

  • Automatic dependency loading (including framework assemblies)
  • Configurable name generators
  • Renaming
    • ✔ Classes, ✔ structs, ✔ interfaces
    • ✔ Enumerations
    • ✔ Delegates
    • ✔ Methods, ✔ Properties, ✔ Fields, ✔ Events
    • ✔ Parameters
  • Support for multiple entry points
  • Exclusion rules
    • ✔ Overrides of untouchable members (e.g. .NET framework members)
    • ✔ Public members (unless explicitly allowed)
    • ✔ User-supplied whitelist
    • Partial code analysis
      • ✔ Enums converted to string will not be renamed
    • [Obfuscation] attribute support with following extras:
      • [Obfuscation] excludes type name and all public members by default
      • [Obfuscation(Feature = "applyToChildren")] applies rules to all children
      • [Obfuscation(Feature = "applyToPrivate")] applies rules to all private and public members
      • [Obfuscation(ApplyToMembers = false)] excludes only type name (renamed public members and nested types)
      • Multiple features can be used, separated by semicolon ;

Out of scope

(Will NOT be implemented in near future)

  • Method body obfuscation
  • Assembly merging

License

Jumble is written in F#, licensed under MIT license and free for both commercial and non-commercial use.

Build

Requirements: .NET 5

dotnet tool restore
dotnet fake build -t all

Contact

Have a feature request or a question? Contact us or ask at Github issues page.