Markers Check_Protection
Check_Protection markers can be used to check the integrity of the protection code. If the protection code is corrupted, the code inside the marker will not be executed, and if the protection is OK, the code inside the marker will be executed. This is a very good and useful way to hide the "weak" points from crackers, for example, the key check routine, etc. can be placed inside these markers.
Content
Show/Hide Delphi marker content
uses
enigma_ide;
procedure Test;
begin
EP_Marker('check_protection_begin');
EP_Marker('check_protection_end');
end;
check_protection_begin.inc
asm
DB $EB, $08, $43, $48, $43, $4B, $50, $52, $54, $42
end;
check_protection_end.inc
asm
DB $EB, $08, $43, $48, $43, $4B, $50, $52, $54, $45
end;
Show/Hide C++ marker content
#include "enigma_ide.h"
#pragma optimize("", off)
void test()
{
EP_Marker("check_protection_begin");
EP_Marker("check_protection_end");
}
#pragma optimize("", on)
check_protection_begin.inc
__asm
{
DB 0xEB, 0x08, 0x43, 0x48, 0x43, 0x4B, 0x50, 0x52, 0x54, 0x42
}
check_protection_end.inc
__asm
{
DB 0xEB, 0x08, 0x43, 0x48, 0x43, 0x4B, 0x50, 0x52, 0x54, 0x45
}
Show/Hide C++ x64 marker content
#include "enigma_ide.h"
#pragma optimize("", off)
void test()
{
EP_Marker("check_protection_begin");
EP_Marker("check_protection_end");
}
#pragma optimize("", on)
Show/Hide Visual Basic marker content
Call VarPtr("CHECK_PROTECTION_BEGIN")
Call VarPtr("CHECK_PROTECTION_END")
Examples
Show/Hide Delphi marker example
uses
enigma_ide;
begin
EP_Marker('check_protection_begin');
MessageBox(0, 'The protection is OK!', 'Application!', 0);
EP_Marker('check_protection_end');
{$I ..\..\..\EnigmaSDK\Delphi\check_protection_begin.inc}
MessageBox(0, 'The protection is OK!', 'Application!', 0);
{$I ..\..\..\EnigmaSDK\Delphi\check_protection_end.inc}
MessageBox(0, 'If you did not see any message before then protection is corrupted!', 'Application', 0);
end;
Show/Hide Visual Basic marker example
Call VarPtr("CHECK_PROTECTION_BEGIN")
MsgBox "This message box is shown inside Check Protection marker! The protection is OK!"
Call VarPtr("CHECK_PROTECTION_END")
See markers examples in the installation folder, Examples\CheckProtection subfolder.