Remove unnecessary metadata
Removes several types of metadata which is not usually necessary at runtime, such as what makes a property or an event.
Before | After |
---|---|
class MyClass { public string DataPath { get { ... } set { ... } } public void Method() { |
class Connections { public string Split() ... public void Transition(string plaintext) ... public void Progress() { |
The above example combines this obfuscation with "Rename types/members". Among other things, this disassociates getters and setters.
.NET compilers have a habit of littering their output assemblies with giveaway information that reveals the structure of the original codebase. This information is useful only in contexts where reflection is employed and where a reusable external library is desired, but otherwise they serve no useful purpose. Rummage removes all the metadata that is not required for your program to run normally.