Published: 29 Oct 2025
Code Virtualization is a new feature of the enhanced Aggressive Control Flow algorithm.
It doesn’t virtualize the entire method body, instead, it selects and extracts small, critical portions of code from user-chosen methods.
Those protected code fragments are removed from the assembly, encrypted, and securely stored in the Skater Cloud Vault.
At runtime, your application fetches and executes those fragments inside a lightweight built-in virtual machine (VM).
Because the most sensitive parts of your logic are no longer present in the binary:
You can mark specific methods in the Skater UI or within an obfuscation profile.
Skater automatically analyzes and selects the most valuable segments within those methods for virtualization.
This ensures high security while minimizing performance impact.
It’s best to choose methods that include:
All extracted code fragments are securely stored in the Skater Cloud Vault.
Each fragment is encrypted, digitally signed, and associated with your project’s Certificate IV, a unique identifier required for decryption and execution at runtime.
Skater provides caching and offline fallback mechanisms.
You can define how long a decrypted code fragment remains cached and what to do if the connection to the Vault is temporarily lost (for example, use an encrypted local cache or gracefully block protected functionality).
Only minimally.
Because only small parts of methods are virtualized, the runtime overhead is lower than with full-method virtualization.
The first execution may involve downloading and decrypting a fragment, but subsequent calls use cached data.
Yes. For best protection:
The Skater Vault enforces encryption, signing, and secure transport by default.
Absolutely.
Code Virtualization complements traditional techniques such as:
Use it when: