Understand how Shield protections work
Shield protections are different layers of security and obfuscation that are applied individually or jointly to your application.
Unlike other obfuscators, Shield protections have the following characteristics:
- They are compatible with each other, although you can use them in isolation, when combined they use shared parameters that make security dependent on each of the layers, making the protection more robust.
- They check integrity at each layer, unlike basic obfuscation tools, they not only modify the visibility of your code, but also add extra integrity checks to ensure that the code is not modified.
- They adapt automatically, you don't have to worry about whether your application is Xamarin, Blazor or a .NET Core API, they automatically detect where they are being applied and configure their parameters intelligently.
- They are always up to date, in the world of security, deobfuscation and manipulation techniques advance quickly, buying security software and not receiving updates for a couple of months, or it being tedious to update is a risk for you. Shield has cloud protections, so you don't have to worry about that every time you protect, you are using the latest technology.
- Advanced customization, Shield allows you to define actions in case the protections need to take a response to a specific situation, for example, you can decide what should happen in your application if an unauthorized external debugger is detected.
- Detailed configuration, protections are pre-configured by default and adapt intelligently by modifying their configuration, but if you wish, you have parameters, modes, and configurations for each of them.
- Exclusions and configurations from code, you can easily exclude certain protections from certain parts of the code and even modify their configuration for specific parts of the code.
- Advanced debugging, you can use security privileges to debug your protected applications even when the debugger prevention option is active.
- Stacktrace and advanced exception management, with Shield you can get full exception information without the obfuscation applied to them.
- Stability, there are obfuscation options with Code Virtualization (usually, easy to de-virtualize) that generate compatibility, performance, and execution problems in large or enterprise applications. Shield offers security that gives you reliability in operation, ensuring that it works and does not noticeably affect the performance of your application.
Prevention Protections
Anti ILDasm
This protection marks the module with an attribute that prevents ILDasm.
Anti Debugger
This protection prevents the application from being debugged or profiled.
Anti Dump
This protection avoids the possibility of performing a memory dump on your application.
Anti Jailbreak
This protection prevents the application from running on jailbroken or rooted devices.
Obfuscation Protections
Renamer
This protection renames and confuses the symbols so that the decompiled source code cannot be compiled or read.
Constants disintegration
This protection disintegrates the integers of your application into several arithmetic, logical and conditional operations dynamically so that the original value cannot be obtained.
Constants Encryption (Basic)
This protection encodes and compresses the constants (numbers, strings, and initializers) in the code.
Advanced and Integrity Protections
Constants Encryption (Advanced)
This protection encodes and compresses the constants (numbers, strings, and initializers) in the code.
Call Hiding
This protection encodes and hides the references of your application.
Events Protection
This protection encodes and hides the events of your application.
Control flow (Advance)
This protection modifies the flow of methods so that it cannot be interpreted.
Metadata and Resource Protections
Invalid metadata
This protection adds invalid metadata to the modules to prevent the decompiler from rebuilding them.
Resource protection
This protection encodes and compresses embedded resources.
Useful documentation on protections
How to exclude protections from certain parts of the code
Exclude protections or modify their behavior from the code
Exclude certain members of your application or apply specific settings to specific pieces of code.
How to debug protected applications
Debugging protected applications with Shield
Deobfuscate stacktrace from exceptions generated in a protected application with Shield and debug applications in production with active protections
How to work with obfuscated exceptions
Handling StackTrace and exceptions in protected applications
Learn how to deobfuscate exceptions and understand the stacktrace of a protected application.
Configuration files for protections
Configure each of the protections in a personalized way
Configure the protection options in an advanced way to be able to make manual changes in each one of them.