The Unprotected markers allow selecting parts of the code that should be executed only in a non-protected version of the file. During the protection process, the code inside these markers is deleted and these parts will not be present in memory when the protected file starts. In short, the code inside these markers will not be executed after protection.
unprotected_begin.inc
asm
DB $EB, $08, $55, $4E, $50, $52, $4F, $54, $42, $00
end;
unprotected_end.inc
asm
DB $EB, $08, $55, $4E, $50, $52, $4F, $54, $45, $00
end;
unprotected_begin.inc
__asm
{
DB 0xEB, 0x08, 0x55, 0x4E, 0x50, 0x52, 0x4F, 0x54, 0x42, 0x00
}
unprotected_end.inc
__asm
{
DB 0xEB, 0x08, 0x55, 0x4E, 0x50, 0x52, 0x4F, 0x54, 0x45, 0x00
}
#include "include/enigma_api64.h"
EP_Marker("unprotected_begin");
EP_Marker("unprotected_end");
Call VarPtr("UNPROTECTED_BEGIN")
Call VarPtr("UNPROTECTED_END")
begin
{$I ..\..\..\EnigmaSDK\Delphi\unprotected_begin.inc}
MessageBox(0, 'If you are seeing this message then the module is not protected!', 'Application', 0);
{$I ..\..\..\EnigmaSDK\Delphi\unprotected_end.inc}
MessageBox(0, 'If you did not see any messages then the module is protected!', 'Application', 0);
end;
See markers examples in the installation folder, Examples\MarkersUnprotect subfolder.