Markers Decrypt_On_Execute
Decrypt_On_Execute markers allow selecting parts of the code that should be deciphered only when the code needs to be executed. These markers do not affect the execution process and the functionality of the protected module. The code between these markes encipheres after protection and is only stored in the file. When the execution of the module has come to the begin marker, the code begins to decipher and execute. These markers can increase safety of the protected module and serve as an anti-dump technique. Most crackers dump the program from memory at the first execution command, and if you use the Decrypt_On_Execute markers, the cracker will not get the original code from memory and will not be able to restore the sources. You can use any number of Decrypt_On_Execute markers in your module.
Content
Show/Hide Delphi marker content
uses
enigma_ide;
procedure Test;
begin
EP_Marker('decrypt_on_execute_begin');
EP_Marker('decrypt_on_execute_end');
end;
decrypt_on_execute_begin.inc
asm
DB $EB, $0C, $45, $43, $52, $4F, $4E, $45, $58, $45, $43, $42, $00, $00
end;
decrypt_on_execute_end.inc
asm
DB $EB, $0C, $45, $43, $52, $4F, $4E, $45, $58, $45, $43, $42, $00, $00
end;
Show/Hide C++ marker content
#include "enigma_ide.h"
#pragma optimize("", off)
void test()
{
EP_Marker("decrypt_on_execute_begin");
EP_Marker("decrypt_on_execute_end");
}
#pragma optimize("", on)
decrypt_on_execute_begin.inc
__asm
{
DB $EB, $0C, $45, $43, $52, $4F, $4E, $45, $58, $45, $43, $42, $00, $00
}
decrypt_on_execute_end.inc
__asm
{
DB $EB, $0C, $45, $43, $52, $4F, $4E, $45, $58, $45, $43, $42, $00, $00
}
Show/Hide C++ x64 marker content
#include "enigma_ide.h"
#pragma optimize("", off)
void test()
{
EP_Marker("decrypt_on_execute_begin");
EP_Marker("decrypt_on_execute_end");
}
#pragma optimize("", on)
Show/Hide Visual Basic marker content
Call VarPtr("DECRYPT_ON_EXECUTE_BEGIN")
Call VarPtr("DECRYPT_ON_EXECUTE_END")
Examples
Show/Hide Delphi marker example
uses
enigma_ide;
begin
MessageBox(0, 'Application is started!'#13#10'The code between decrypt_on_execute markers is enciphered now!', 'Test', 0);
EP_Marker('decrypt_on_execute_begin');
MessageBox(0, 'The message from deciphered code!', 'Test', 0);
EP_Marker('decrypt_on_execute_end');
{$I ..\..\..\EnigmaSDK\Delphi\decrypt_on_execute_begin.inc}
MessageBox(0, 'The message from deciphered code!', 'Test', 0);
{$I ..\..\..\EnigmaSDK\Delphi\decrypt_on_execute_end.inc}
end;
Show/Hide C++ marker example
#include "enigma_ide.h"
#pragma optimize("", off)
{
MessageBox(0, "Application is started!\r\nThe code between decrypt_on_execute markers is enciphered now!", "Test", 0);
EP_Marker("decrypt_on_execute_begin");
MessageBox(0, "The message from deciphered code!", "Test", 0);
EP_Marker("decrypt_on_execute_end");
#include "..\..\..\EnigmaSDK\Bcb\decrypt_on_execute_begin.inc"
MessageBox(0, "The message from deciphered code!", "Test", 0);
#include "..\..\..\EnigmaSDK\Bcb\decrypt_on_execute_end.inc"
}
#pragma optimize("", on)
Show/Hide Visual Basic marker example
MsgBox "The code between decrypt_on_execute markers is enciphered now!"
Call VarPtr("DECRYPT_ON_EXECUTE_BEGIN")
MsgBox "The message from deciphered code!"
Call VarPtr("DECRYPT_ON_EXECUTE_END")
See markers examples in the installation folder, Examples\MarkersDecryptOnExecute subfolder.