In addition to code obfuscation and runtime checks, Dotfuscator includes features that help reduce application size and track software distribution.
These features address different protection goals than Renaming, Control Flow Obfuscation, or String Encryption:
| Feature | Purpose |
| Removal | Reduces application size by removing unused code, metadata, and resources. |
| Watermarking (PreMark) | Embeds identifying information into an application to help track unauthorized distribution. |
You can use these features independently or alongside other Dotfuscator protections.
Removal
Removal (also known as pruning) analyzes your application and removes code that is not required at runtime.
By eliminating unused types, methods, fields, resources, and metadata, Removal can:
- Reduce application size
- Improve download and installation times
- Reduce the amount of information available to reverse engineers
Removal uses static analysis to determine which code is required by your application. The analysis begins with one or more entry points, called triggers, and follows all reachable code paths. Code that cannot be reached through this analysis can be removed from the protected assembly.
Because Removal relies on static analysis, applications that use technologies such as reflection, XAML, or other runtime-discovered code may require additional configuration to ensure required code is preserved.
For more information, see Removal.
Watermarking (PreMark)
Watermarking helps identify the source of unauthorized software distribution.
The feature embeds information such as copyright notices, customer identifiers, or other tracking data into an application without affecting its runtime behavior.
Dotfuscator's watermarking implementation:
- Does not increase application size
- Does not introduce additional metadata
- Does not affect application functionality
Watermarking can be used to create uniquely identifiable builds for customers, partners, or distribution channels.
For more information, see Watermarking (PreMark).
Related Articles
- Optimize Your Application with Removal
- The Removal Editor
- Track Software Distribution with Watermarking
- The PreMark Editor