x64 EP_Marker("vm_begin")

Post here messages if you have any problems with working of Enigma Protector
Post Reply
yoshke754
Posts: 5
Joined: Thu Apr 03, 2014 11:40 am

x64 EP_Marker("vm_begin")

Post by yoshke754 »

As I understand the way to do obfuscation to a code segment is using the virtual machine.
In C++ x64 the segment is marked by EP_Marker("vm_begin") and EP_Marker("vm_end").
I am protecting a dll (no exe) and having problems with these marks.
I am looking at the report of the Enigma Protector "Protection process log" window after the log line: "Process Virtual Machine"
ONE OF THE MARKED SEGMENTS IS OK, SOME SEGMENTS ARE SIMPLY IGNORED AND SOME PRODUCE ERROR:
"Markers error: the END marker is placed before BEGIN marker! All data will be ignored"
although the I have placed the 'begin' is before the 'end'.
The specific code that produce the error is like this:
EP_Marker("vm_begin"); // enigma ERROR end before begin ??
if(pMain)
{
g_vecMain.push_back(pMain) ;
iId = (int)g_vecMain.size() - 1 ;
pMain->DoSomething(iSomeParam) ;
}
EP_Marker("vm_end");

Maybe I am doing something totally wrong.
Do I have to set something in the Enigma Protector SETTINGS before running the protection ?

thanks.
Alec
Posts: 82
Joined: Thu Feb 20, 2014 9:35 am

Re: x64 EP_Marker("vm_begin")

Post by Alec »

Hi, you need to disable optimization for that particular code region because C++ optimizer cut's off your markers.
yoshke754
Posts: 5
Joined: Thu Apr 03, 2014 11:40 am

Re: x64 EP_Marker("vm_begin")

Post by yoshke754 »

Alec , thanks.
Now it looks OK.
I hope the obfuscation will be efficient.
Thanks.
Post Reply