VMProtect + VS2012 performance regression

Hello,

We recently upgraded our project from VS2008 to VS2012, and VMProtect from 2.10 to 2.13. What we see is the application start time (before entering “main” function) is noticeably longer with the protected executable. This behavior was not reproducible in VS2008 build of our project.

The only VMProject functions we call in our code are VMProtectBeginMutation/VMProtectEnd and VMProtectIsDebuggerPresent. Our .vmp file looks something like this:

<?xml version="1.0" encoding="UTF-8"?>
<Document>
	<Protection
		InputFileName="AppNameRaw.exe"
		Options="65544"
		CheckKernelDebugger="true"
		OutputFileName="AppName.exe"
		>
		<Messages
		/>
		<Folders
		/>
		<Procedures>
		</Procedures>
	</Protection>
	<Script
	/>
</Document>

What can we do to debug the slow start up time? Thanks.

Found the culprit: VMProtectIsValidImageCRC

Removing that call gets rid of the slow down during start up. Why is this happening?

Turns out every call to VMProtectIsValidImageCRC takes about 5 seconds!

Our executable is around 14MB, protected executable size is around 17MB. Again, the slow down did not happen in VS2008 build.

Could you sent us original executables after VS2008 and VS2012 build?

I’ve sent the requested files to info@vmpsoft.com about a week ago. Have not heard any acknowledgment. Please let me know whether you guys received the files and any progress made. Thanks.

2012.exe - 17Mb
2008.exe - 12Mb

2012.exe more than 2008 on 5Mb (30%), so all operations (unpacking, CRC checking, etc.) in 2012.exe are slower on 30%.