Rename classes, methods, etc.
Erases meaningful names of classes, methods and other types of entries. Since some renames are not possible due to reflection, picks plausble but completely random names to confuse the attacker.
Before | After: traditional | After: Rummage |
---|---|---|
class Program class Settings |
class a class b | class BrowseEntry class Fixed |
Using the traditional approach, it is completely obvious which members could not be renamed for whatever reason. The Rummage approach makes them blend in and thus hard to spot.
Rummage looks out for code that uses reflection to access classes and properties and makes an intelligent effort to rename as much as possible while keeping the program functional.