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 билд) выслана на емаил, указанный при покупке