Page 1 of 1

Несколько запротектированных плагинов

Posted: Tue Jun 07, 2016 9:35 am
by mroleg
Есть стороннее приложение-сервер, запускаемое в системе как служба.
Я использую VMProtect для защиты разрабатываемых мной dll-плагинов.
Проблема: когда служба использует > 1 запротектированного плагина, то при ручной остановке службы через стандартный Services всплывает ошибка:

Code: Select all

Windows could not stop the service on local computer.
Error 1067 the process terminated unexpectedly
Если работает только 1 запротектированный плагин, то служба останавливается нормально.

С чем это может быть связано и как решить данную проблему?

Re: Несколько запротектированных плагинов

Posted: Wed Jun 08, 2016 10:40 am
by Admin
Нужно разбираться в отладчике.

Re: Несколько запротектированных плагинов

Posted: Thu Jun 09, 2016 11:37 am
by mroleg
Access violation возникал в секциях vmp в стеке после вызова FreeLibrary.
Выяснилось, что при отключении в опциях "защиты памяти" аварийной остановки службы не наблюдается, тем не менее процесс выгрузки dll занимает достаточно много времени (~30 сек).
Также интересный момент, что при отключении защиты памяти размер файла уменьшается с 3.3 Мб до 1.7Мб - почему защита памяти требует таких ресурсов?

Много ли теряется в отношении протекции при отключении данной опции?

Re: Несколько запротектированных плагинов

Posted: Sat Jul 02, 2016 8:00 am
by Admin
Что делает защита памяти:
1. При старте проверяет целостность файла на диске.
2. При старте проверяет целостность ReanOnly сегментов образа в памяти.
3. При работе завиртуализированного кода проверяет случайные участки кода, которые получились в результате защиты программы (пользовательские функции с типами мутация/виртуализация + код VMP рантайма)

Размер таблицы хешей для п. 3 самый большой, т.к. размеры регионов там ограничены в 4К для обеспечения приемлимой скорости.

Дополнительно на размер защищенного файла влияет наличие VMP рантайма (VMProtect добавляет свой собственный код если программа использует функции из SDK/опции "Защита памяти", "Защита ресурсов" и в меньшей степени "Упаковка файла").

Re: Несколько запротектированных плагинов

Posted: Sat Jul 02, 2016 8:23 am
by Admin
Access violation возникал в секциях vmp в стеке после вызова FreeLibrary.
Выяснилось, что при отключении в опциях "защиты памяти" аварийной остановки службы не наблюдается
Исправленная версия (619 билд) выслана на емаил, указанный при покупке