This protection interface implementation provides alternate way of using advanced protection interface functions and is intended for Microsoft .NET applications and any Windows applications which are not able to use default advanced protection interface implementation.

If you are using programming languages such as C/C++, Delphi or VB you should use default way of accessing protection interface.

General implementation steps

Both "Enable protection interface" and "Enable alternate protection interface" options should be set in project settings.

STEP 1: Protected application is started and protection code gains control.

STEP 2: Protection code will load interface dll into memory. 

STEP 3: Protection code will pass control to protected application.

STEP 4: Protected application can now make calls to exported function inside interface dll in order to get access to appropriate advanced protection interface functions.

STEP 5: Once function address is obtained application can call actual advanced protection interface function.

Sample source code

We've prepared sample source code projects for accessing advanced protection interface functions by using alternate protection interface. Provided source code can be freely modified to suit your specific needs.

Sample applications are included in full featured version and installed in \pcgi and \pcgi\net folders.

The following sample projects are currently available:

- altpcgi_cpp_sample

Sample C/C++ console application which demonstrates usage of alternate protection interface (VS 2019 project). Included header file (altpcgi.h) includes all required alternate protection interface definitions.

- altpcgi_vbnet_sample

Sample VB.NET console application which demonstrates usage of alternate protection interface (VS 2019 project). Sample class (AltPcgi) for accessing all advanced protection interface functions via alternate protection interface implementation is included this sample. 

- altpcgi_c#_sample

Sample C# console application which demonstrates usage of alternate protection interface (VS 2019 project). Sample class (AltPcgi) for accessing all advanced protection interface functions via alternate protection interface implementation is included in this sample. 

NOTES:

- This implementation requires presence of interface DLL.

- Interface DLL is in this case used as a link between protected application and our protection code embedded into it.

- If main EXE application and multiple DLL files are protected and if alternate protection interface is enabled for all modules only advanced protection interface functions from main EXE can be accessed in this way. This means that both EXE and DLL code will make calls to functions located in main EXE.

- Since default interface DLL name can be changed in project settings be sure that you are using correct (custom) name when implementing alternate protection interface.

- Be sure to use 32bit version of interface dll for 32bit applications and 64bit version for 64bit applications.