use VMProtectEnd(); appear UnpairedVMProtectEnd

Issues related to VMProtect
Post Reply
ssack
Posts: 10
Joined: Sun Jun 28, 2009 1:33 am

use VMProtectEnd(); appear UnpairedVMProtectEnd

Post by ssack »

my code is

void GetDa(Pak* buf)
{

VMProtectBeginUltra("VMP14");
if (NULL == buf)
{
canlock = FALSE;
GetResText = 0;
FontTable = 0;
}
else
{
canlock = TRUE;
}

VMProtectEnd();
}

after compile. VMProtectEnd() become two call.
so protected note me UnpairedVMProtectEnd
Last edited by ssack on Sun Jun 28, 2009 2:24 am, edited 1 time in total.
ssack
Posts: 10
Joined: Sun Jun 28, 2009 1:33 am

Post by ssack »

void GetDa(Pak* buf)
{

VMProtectBeginUltra
if (NULL == buf)
{
canlock = FALSE;
GetResText = 0;
FontTable = 0;
}
else
{
canlock = TRUE;
}

VMProtectEnd
}

use MACRO marker no problem
Admin
Site Admin
Posts: 2586
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Post by Admin »

The reason of this situation in optiomization:

VMProtectBeginUltra
...
VMProtectEnd
...
VMProtectEnd

Try to disable the optimization for this block of code.
ssack
Posts: 10
Joined: Sun Jun 28, 2009 1:33 am

Post by ssack »

i konw The reason is optiomization:

but use MACRO Marker is OK

so i hope continue use MACRO.
ssack
Posts: 10
Joined: Sun Jun 28, 2009 1:33 am

Post by ssack »

Admin wrote:The reason of this situation in optiomization:

VMProtectBeginUltra
...
VMProtectEnd
...
VMProtectEnd

Try to disable the optimization for this block of code.
how to disable the optimization for one block?
gnjp
Posts: 2
Joined: Thu Jan 28, 2010 9:47 am

Re: use VMProtectEnd(); appear UnpairedVMProtectEnd

Post by gnjp »

in MSVC++

#pragma optimize( "g", off )

// code

#pragma optimize( "g", on )
Post Reply