Error in virtual machine under russian Windows

Issues related to VMProtect
Post Reply
FraGGer
Posts: 5
Joined: Tue Apr 10, 2007 10:51 am

Error in virtual machine under russian Windows

Post by FraGGer »

Добрый день.

Проблема в следующем. Имеется драйвер, часть функций которого защищены с помощью VMProtect 1.2.2
Ощущение такое, что в некоторый момент виртуальная машина вылетает и код, который должен исполняться под виртуальной машиной, выполняется как обычный код, что рано или поздно приводит к возникновению BSOD (чаще всего ошибки связаны с чтением или записью в произвольный регион памяти).
Что интересно - ошибки случаются только под русскими версиями (не важно Win 2000, Win XP, Win 2003) и пока ни разу не проявились под английской версией.
В history VMProtect я не встретил никаких упоминаний на подобные проблемы. Исходя из этого вопрос - известна ли подобная проблема и если да, то была ли она исправлена?
Last edited by FraGGer on Tue Apr 10, 2007 1:40 pm, edited 2 times in total.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Post by Admin »

Скорее всего проблема связана с многопоточностью. В версиях до 1.24 для драйверов рекомендовалось указывать процедуру выделения памяти для нужд исполнителя. Начиная с версии 1.24 VMProtect полностью поддерживает многопоточность без каких либо дополнительных действий со стороны разработчика.
FraGGer
Posts: 5
Joined: Tue Apr 10, 2007 10:51 am

Post by FraGGer »

Спасибо за ответ. Ситуация когда несколько процедур может выполняться "одновременно" под виртуальной машиной, что может трактоваться как многопоточность, действительно может иметь место.
Просто несколько насторожил тот факт, что в основном все происходит под русской версией windows

Что касается кодировки - у Вас на форуме установлена кодировка ISO-8859-1, что вероятно и приводит к проблемам. Попробуйте установить 1251 или UTF8. Сейчас чтобы прочесть сообщения на форуме мне приходится на каждой странице переключать кодировку на 1251 вручную.
FraGGer
Posts: 5
Joined: Tue Apr 10, 2007 10:51 am

Post by FraGGer »

Если можно какую-либо ссылку на источник, где освещен вопрос как именно должна выглядеть процедура выделения памяти?
В статье http://polytech.ural.ru/vmprotect.htm этот вопрос не рассматривается...
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Post by Admin »

Старые версии VMProtect (ниже 1.23) больше не поддерживаются, т.к. проект стал полностью коммерческим.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Post by Admin »

FraGGer wrote:Что касается кодировки - у Вас на форуме установлена кодировка ISO-8859-1, что вероятно и приводит к проблемам. Попробуйте установить 1251 или UTF8. Сейчас чтобы прочесть сообщения на форуме мне приходится на каждой странице переключать кодировку на 1251 вручную.
В своем профиле выберите русский язык, тогда форум будет отображаться в правильной кодировке.
FraGGer
Posts: 5
Joined: Tue Apr 10, 2007 10:51 am

Post by FraGGer »

Ну не поддерживается, так не поддерживается. Разобраться с этой процедурой заняло минут 15...
В любом случае спасибо за рекомендацию.
Однако не уверен что поможет. Баг репорты продолжают сыпаться - и все без исключения под русской версией windows. Если бы причина была в выделении памяти, то ошибка с равной вероятностью проявлялась бы как под русской так и под английской версиями.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Post by Admin »

Ну не поддерживается, так не поддерживается. Разобраться с этой процедурой заняло минут 15...
Процедура выделения памяти должна работать в двух режимах:
1. Выделение памяти: входной параметр ECX - размер блока в байтах; выходной параметр EAX - указатель на выделенный блок.
2. Освобождение памяти: входные параметры ECX=0, EDX - указатель на высвобождаемый блок.
Однако не уверен что поможет. Баг репорты продолжают сыпаться - и все без исключения под русской версией windows.
Непонятно - вы уже пробывали защиту с внешним выделением памяти или нет? :))

P.S. В любом случае нельзя исключать причину возникновения ошибки в самом драйвере (в алгоритме работы), а не в защите в виде VMProtect.

P.P.S. Вы можете попробывать защитить свой драйвер последней демо версией, правда в силу ограничений демки можно защитить всего одну процедуру, но для тестов я думаю этого вполне хватит.
FraGGer
Posts: 5
Joined: Tue Apr 10, 2007 10:51 am

Post by FraGGer »

Спасибо - я же написал что уже разобрался с процедурой - для того отладчики и придумали :))
Пока еще не пробовал, но постараюсь сегодня сделать.
Post Reply