Protection interface is the interface between protected application (your code) and protection code (our code) embedded into it during protection process.

In this way, license status and many other valuable information may be obtained. Application can even interact with protection code by calling advanced protection interface functions.  

Our protection code will gain control on startup, check license status, demo limitations, application integrity, initialize required data (import functions, relocation tables), decrypt application and pass control to it.

By default, unless run-time encryption is used, protection code will not affect application execution once the control is passed to it. 

However, there is often a need for checking different license data such as activation status, demo mode status, custom counters values or custom features...

There are two levels of protection interface implementation: Standard and Advanced.

There is also alternate protection interface implementation which is intended for all Microsoft .NET applications and Windows application which are not able to use default advanced protection interface implementation.