Вопрос от потенциального покупателя

Issues related to VMProtect
Post Reply
digdiver
Posts: 1
Joined: Thu Sep 15, 2011 9:28 am

Вопрос от потенциального покупателя

Post by digdiver »

Есть продукт, который имеет несколько версий (Free, Standard, Professional). Сейчас используется AsProtect. В нем есть возможность защитить участки кода (Modes List), которые открываются только ключем от конкретной версии (Unlock encrypted section).
Имеется ли такая (похожая) возможность в VMProtect.
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Вопрос от потенциального покупателя

Post by Admin »

В настоящий момент похожего функционала нет. Единственное что можно посоветовать - это использовать UserData под хранение типа версии и его анализ перед выполнением привязанного к этой версии кода.
3m-soft
Posts: 1
Joined: Thu Apr 01, 2010 9:59 am

Вопрос от потенциального покупателя

Post by 3m-soft »

Преамбула ко первому вопросу:
Использую WinLicense для защиты динамически загружаемой DLL. Именно динамической, потому как без неё программа может выполнять много разных других функций. Сама программа без DLL загружается со скоростью блокнота, что и требуется. DLL в защищенном виде загружается около 7-8 секунд, что очень долго. Если загружать DLL в основном потоке (первом потоке, GUI потоке, короче, называйте его как хотите) то получаем "зависание" интерфейса на 7-8 секунд, что плохо. Если загружать защищенную DLL в дополнительном потоке, что хорошо для интерфейса, то получаю вообще полное зависание процесса. Только убийство помогает. Если защитить DLL при помощи VMProtect, то, понятное дело, она тоже будет долго грузиться.
Вопрос первый: можно ли загрузить защищенную при помощи VMProtect DLL-ку в доп. потоке? Уверяю, что без защиты моя DLL-ка прекрасно грузится в доп. потоке.

Преамбула ко второму вопросу:
Есть в модуле защищаемые строковые константы. В WinLicense для шифрования констант есть два метода: через вызов функции и при помощи макросов для выделения блока. Оба этих метода фуфло, ибо потерять константу плевое дело. Нет никакого метода/инструмента, чтобы уберечься от пропуска константы в бинарник в незащищенном виде. Т.е. WinLicense просто смолчит о том, что не смог по каким то причинам её зашифровать и всё. Логи анализировать дело реально не благодарное, тем более что на UNICODE константы он, падла, выводит только первую букву. И как по первой букве догадаться, что там за константа была? Меняются компиляторы, меняется сама программа и даже если нудно проконтролировал один раз, чтобы все важные константы были защищены, то нет никакого способа потом не получить "сбежавшую" константу. Такая "сбежавшая" константа так и светится в дампе памяти: "Возьми меня, я твоя"
Вопрос второй: есть ли в вашем протекторе инструмент обретения полной уверенности, что ни одна важная константа не проскочила в защищенный бинарник в незашифрованном виде? Т.е. если помечена она как VMProtectDecryptString, то либо умри, но зашифруй, либо скажи мне, что не могу и я найду способ удовлетворить протектор.
Admin
Site Admin
Posts: 2686
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Вопрос от потенциального покупателя

Post by Admin »

Вопрос первый: можно ли загрузить защищенную при помощи VMProtect DLL-ку в доп. потоке?
Можно.
есть ли в вашем протекторе инструмент обретения полной уверенности, что ни одна важная константа не проскочила в защищенный бинарник в незашифрованном виде?
После добавления новой константы вы можете загрузить бинарник в GUI версию и убедиться что она появилась в папке "Новые маркеры и строки". После этого можно сохранить проект и при каждой последующей загрузке протектор будет проверять соответствие всех функций/констант в проекте функциям/константам в бинарнике. Если какая-либо функция/константа из проекта не будет найдена, то при компиляции протектор напишет варнинг в лог с указанием названия проблемной функции/константы.
Post Reply