Understanding Protection
PreEmptive Protection™ DashO™ for Android & Java provides a multi-layer approach to software protection. Each layer provides an important piece of an overall protection strategy; if one layer is compromised, the other layers continue to provide effective protection. Not only are there multiple layers, but each layer has advanced features that are more robust than the simple techniques used by other obfuscation products.
The first layers of protection are Obfuscation techniques, which operate on Java bytecode to make reverse engineering difficult or impossible.
- Renaming (Standard Mode Only)
- Control Flow
- String Encryption
The next layers of protection are Checks that occur while the protected software runs. When the software detects that an attacker is attempting to tamper with it or reverse-engineer it, or that it is otherwise running in an unsafe environment, it can defend itself with custom logic. Checks include:
- Tamper Checks
- Debug Checks
- Shelf Life Checks
- Root Checks (For Android)
- Emulator Checks (For Android)
- Hook Checks (For Android)
The remaining layers strengthen overall application protection and/or improve application performance:
- Removal (Standard Mode Only)
- PreMark™ (Standard Mode Only)
- Optimization (Standard Mode Only)
All of these features can be configured through the DashO GUI.
Additionally, check-related features may also be configured through use of code annotations, if that is more convenient for your development approach.
Finally, if needed, the configuration .dox
files may be adjusted by hand.