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.
