Best Practices Guide

Post here any topics that related to Enigma Protector, its functionality, your misunderstanding, offers to improvements etc etc etc
Post Reply
ggpnet
Posts: 13
Joined: Sat Jun 16, 2012 8:00 am

Best Practices Guide

Post by ggpnet »

Good Day,

I don't know if it already exists and I couldn't find it. But I think It would be very useful have a basic guide with the Best Practices for each kind of Application:

Win32 Portable Executable file (*.exe);
Windows Screen saver files (*.scr);
Dynamic Link Libraries (*.dll);
32 bit ActiveX control files (*.ocx);
.NET executables (*.exe).

In my particular case I would like to see Best Practices for a .Net Framework 4.0 Application.

For example, which is the best combination of Features, Protection, Hardware Lock and others options for a .Net Framework 4.0 Application.

TIA and Kind Regards
Gianfranco
Enigma
Site Admin
Posts: 3085
Joined: Wed Aug 20, 2008 2:24 pm

Re: Best Practices Guide

Post by Enigma »

Hi Gianfranco,

This does not matter what framework version your application uses, the recommendation are same for all fw versions.

The most common recommendation is integration of program into protection.

The better method for .net is if you move some functionality of your program into unmanaged dll (call this unmanaged dll from your NET application) and then protect it using VM_Markers (code virtualization). Next, you may add this dll into Virtual Box to hide it. For example, if your NET application has some encryption algorithm (or any other code), move it to unmanaged dll, around with vm_markers and then protect.

Also, the following features can be used:
1. Virtual Box feature. Hide .dll dependences in it, or all other files.
2. Use different Enigma API functions. When you make a call to Enigma API, program refers to protection, if protected does not exist (file is cracked/unpacked) you will get an exception or unsuccessful result. For example, you may call functions like EP_CheckupIsEnigmaOk/EP_CheckupIsProtected and check if a result is true. If you are licensing or trial features, then use Enigma API to check license/trial status.
3. Use Protection Features - Protected Strings. Carry all strings from the code to protection, and extract necessary when it is needed. In this case, imagine if protection will be removed, no strings will be returned, and program will not work.
4. Use some unique protection techniques. For example, add a string in Miscellaneous - Environment Variable and check if it exists. If does not exist, then protection removed, then you should terminate application. Use delayed termination, i.e. not after check, but after few seconds.
ggpnet
Posts: 13
Joined: Sat Jun 16, 2012 8:00 am

Re: Best Practices Guide

Post by ggpnet »

Thanks for the excellent explanation.
Post Reply