intel compiler + openmp + x64

Issues related to VMProtect
Post Reply
smat
Posts: 5
Joined: Sat Jun 15, 2013 6:11 am

intel compiler + openmp + x64

Post by smat »

Добрый день!

Подскажите, что делать в такой ситуации:
Есть цикл, который распараллелен с помощью OpenMP
Например:

#pragma omp parallel for
for( int indexW = 0; indexW < w; indexW ++ )
{
BYTE &dst = img.at( indexW );
dst /= 2;
}


Вокруг него поставлены маркеры VMProtectBeginUltra.
для разработки использую visual studio 2008 + intel C++ composer XE 2011 Update 7.
Программа падает на этом цикле, если используется следующее сочетание:
1) платформа - x64
2) компилятор - intel
3) конфигурация - release
4) openmp включен
Во всех остальных вариантах - работает, то есть например, если исопльзовать компилятор из visual studio - все в порядке

архив с проектом, исходником и бинарниками.
https://www.dropbox.com/s/66dmahkfzgiov ... _clean.zip

На самом деле проблема была в реальном проекте, начал копать и оказалось, что даже в таком простом месте воспроизводится бага. В исходном проекте было немного по-другому. Там было два цикла, оба распараллелены через openmp. У одного именованный маркер сохранялся и был виден в GUI VMprotect, а у другого - маркер почему-то отображался неименованным. Ну и программа падала.
Подобные штуки у меня периодически всплывают и решать приходится перестановкой маркера или инструкций местами. Что я делаю не так? Или это бага компилятора/vmprotect?
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: intel compiler + openmp + x64

Post by Admin »

А можно еще куда-нибудь выложить libiomp5md.dll?
smat
Posts: 5
Joined: Sat Jun 15, 2013 6:11 am

Re: intel compiler + openmp + x64

Post by smat »

да, извините, забыл про него

https://www.dropbox.com/s/bx773q5meewy2 ... omp5md.dll
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: intel compiler + openmp + x64

Post by Admin »

Оригинальный файл не хочет запускаться:

---------------------------
TestOMPSlock.exe - Ошибка приложения
---------------------------
Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК".
---------------------------
ОК
---------------------------
smat
Posts: 5
Joined: Sat Jun 15, 2013 6:11 am

Re: intel compiler + openmp + x64

Post by smat »

Извините, это была версия dll для Win32
вот версия для x64: https://www.dropbox.com/s/222ughzvyuxzk ... omp5md.dll

Еще оригинальный файл имеет зависимость от VMprotectSDK64.dll.
smat
Posts: 5
Joined: Sat Jun 15, 2013 6:11 am

Re: intel compiler + openmp + x64

Post by smat »

Удалось запустить?
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: intel compiler + openmp + x64

Post by Admin »

Исправленная версия отправлена на емаил, указанный при покупке VMProtect.
Проверяйте.
smat
Posts: 5
Joined: Sat Jun 15, 2013 6:11 am

Re: intel compiler + openmp + x64

Post by smat »

Потестировал. Не помогло, падает так же

Исходники с бинарниками
https://www.dropbox.com/s/ffv5qu0wbiz7g ... _clean.zip

Только бинарники
https://www.dropbox.com/s/4vp233x93nzem ... .2_bin.zip
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: intel compiler + openmp + x64

Post by Admin »

А теперь падает совершенно по другой причине. Компилятор вывел одну ветку кода за границы маркера и в конце сделал обратный переход обратно. Вмпротект ничего не знает про такой финт ушами.
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: intel compiler + openmp + x64

Post by Admin »

В версии 3.0 будет полностью переделан алгоритм определения границ маркера и такой проблемы больше не возникнет.
Post Reply