Тестирование перед покупкой

Issues related to VMProtect
Post Reply
elugovoy
Posts: 2
Joined: Tue Apr 29, 2014 10:38 pm

Тестирование перед покупкой

Post by elugovoy »

Приветствую.
У меня ряд вопросов, которые хотелось бы прояснить перед покупкой VMProtect Ultimate.

Для начала обрисую ситуацию. Программистом написано коммерческое ПО по заказу клиента. Клиент желает распространять ПО
в режиме подписки (15 дней бесплатно, дальше - помесячная оплата).
Приходим к выводу что нужно продавать коды активации, т.е. помимо защиты от взлома (VMProtect) необходимо управлять ключами активации (на базе WebLM я так понимаю это возможно)

1. Вопросы касательно продукта VMProtect Ultimate.
1.1. В Comparson chart у версии Ultimate стоит Web-generators of serial numbers. Значит ли это что WebLM входит в поставку Ultimate? Если WebLM не входит в поставку VMProtect Ultimate, то что означает эта опция?
1.2. В WebLM есть Лицензии и Коды Активации. В чем функциональная разница?
1.3. Возможна ли скидка на WebLM при покупке VMProtect Ultimate Personal License?
1.4. В прайсах "1 Year Of Maintenance (available for registered users only)" означает один год использования или поддержки?
1.5. В плане защиты в принципе хватило бы и Lite версии, поддерживает ли она работу с WebLM ?

2. Технические вопросы касательно использования VMProtect Ultimate. Перед покупкой, разумеется, хочется опробовать продукт в деле, в условиях, приближенных к реальным.
2.1. Часть кода функции защищена следующим образом:

VMProtectBeginUltra(":MainInitialize");
// код инициализации приложения
VMProtectEnd();

Сама функция защищена с опцией "привязать к серийному номеру" и в тестовом/рабочем режимах выдает сообщение "This code requires serial number to run..." и программа завершает работу.
Однако, если вызвать функцию vmp_result = VMProtectSetSerialNumber(SerialNumber); перед VMProtectBeginUltra(), то независимо от значения SerialNumber, сообщение "This code requires serial number to run..." не показывается и программа продолжает выполнение. Переменная vmp_result возвращает значение 2, но программа продолжает работать. Это нормальная ситуация? Результат необходимо обрабатывать вручную?

2.2. При использовании опции "привязать к серийному номеру" в функцию VMProtectSetSerialNumber необходимо передать серийный номер. Это тот же самый серийный номер, который генерируется VMProtect на вкладке Лицензии (см.прикрепленный файл)? При попытке его использования VMProtectSetSerialNumber возвращает 2, даже если создать файл VMProtectLicense.ini, положить его в директорию проекта и записать туда:
[TestLicense]
AcceptedSerialNumber=содержимое серийного номера

Что делаем не так - непонятно.

2.3. Не совсем ясно как работать с генераторами серийных номеров. А именно каким образом новый серийный номер будет распознан защищенной программой?
Ситуация: Покупатель загрузил триал-версию, испытал ее в течение 15 дней, затем купил лицензионный ключ. При покупке ключ был сгенерирован и отослан покупателю по email. Каким образом программа его распознает, если она была защищена без использования нового ключа?

Спасибо.
С Ув. Евгений.
Attachments
serial.png
serial.png (23.43 KiB) Viewed 7738 times
Admin
Site Admin
Posts: 2585
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Тестирование перед покупкой

Post by Admin »

1.1. В Comparson chart у версии Ultimate стоит Web-generators of serial numbers. Значит ли это что WebLM входит в поставку Ultimate? Если WebLM не входит в поставку VMProtect Ultimate, то что означает эта опция?
Это означает, что в поставку VMProtect Ultimate входят примеры кейгенов в том числе и на PHP (%VMProtect%/Keygen/PHP), которые можно настроить под свои проекты и использовать вместо штатного кейгена. WebLM является отдельным продуктом и не входит в поставку Ultimate.
1.2. В WebLM есть Лицензии и Коды Активации. В чем функциональная разница?
Принципиальная разница заключается в том, что коды активации предназначены для получения конечной лицензии от сервера активации (WebLM). Без сервера активации они совершенно бесполезны в отличие от лицензий.
1.3. Возможна ли скидка на WebLM при покупке VMProtect Ultimate Personal License?
Мы предоставляем 50% скидку на WebLM при покупке в комплекте с Ultimate.
1.4. В прайсах "1 Year Of Maintenance (available for registered users only)" означает один год использования или поддержки?
Это означает один год получения новых версий VMProtect. При этом срок использования совершенно ничем не ограничен.
Однако, если вызвать функцию vmp_result = VMProtectSetSerialNumber(SerialNumber); перед VMProtectBeginUltra(), то независимо от значения SerialNumber, сообщение "This code requires serial number to run..." не показывается и программа продолжает выполнение. Переменная vmp_result возвращает значение 2, но программа продолжает работать. Это нормальная ситуация? Результат необходимо обрабатывать вручную?
Имеет смысл вызывать VMProtectSetSerialNumber всего один раз где-то в начале инициализации приложения и в случае ненулевого результата обрабатывать его самостоятельно (показывая пользователю соответствующее сообщение и т.п.). Перед выполнением привязанного к ключу коду можно дополнительно проверить состояние серийного номера через VMProtectGetSerialNumberState:

Code: Select all

void MainForm::save()
if (VMProtectGetSerialNumberState()) {
  MessageBox("This operation isn't available in unregistered version");
  return;
}

VMProtectBeginUltraLockByKey(NULL);
// code here
VMProtectEnd();
2.2. При использовании опции "привязать к серийному номеру" в функцию VMProtectSetSerialNumber необходимо передать серийный номер. Это тот же самый серийный номер, который генерируется VMProtect на вкладке Лицензии (см.прикрепленный файл)? При попытке его использования VMProtectSetSerialNumber возвращает 2, даже если создать файл VMProtectLicense.ini, положить его в директорию проекта и записать туда:
[TestLicense]
AcceptedSerialNumber=содержимое серийного номера
Да, все правильно - это именно тот самый серийный номер. Примеры использования системы лицензирования можно увидеть в папке "%VMProtect%/Examples/Licensing/MSVC". По поводу "VMProtectLicense.ini" - серийный номер туда нужно записать без перевода строк, т.к. INI файлы не поддерживают многострочные значения.
2.3. Не совсем ясно как работать с генераторами серийных номеров. А именно каким образом новый серийный номер будет распознан защищенной программой?
Ситуация: Покупатель загрузил триал-версию, испытал ее в течение 15 дней, затем купил лицензионный ключ. При покупке ключ был сгенерирован и отослан покупателю по email. Каким образом программа его распознает, если она была защищена без использования нового ключа?
VMProtect при защите программы сохраняет в неё открытый ключ RSA, которого достаточно для проверки валидности лицензии (сами лицензии в программу не записываются). Соответственно ключи можно генерировать и после того как программа была защищена.
elugovoy
Posts: 2
Joined: Tue Apr 29, 2014 10:38 pm

Re: Тестирование перед покупкой

Post by elugovoy »

Большое спасибо за быстрый и подробный ответ.
Все получилось. Еще пара вопросов осталась.
VMProtect Lite поддерживает ли работу с WebLM и генераторами серийных номеров?

Спасибо.
Admin
Site Admin
Posts: 2585
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Тестирование перед покупкой

Post by Admin »

1.5. В плане защиты в принципе хватило бы и Lite версии, поддерживает ли она работу с WebLM ?
Если вам все-таки нужна система лицензирования (лицензии/серийные номера), то Lite вам не подойдет, т.к. система лицензирования доступна только в Ultimate (обратите еще раз внимание на Comparison Chart: в колонках Lite и Professional полностью отсутствуют галки для секции "Serial Numbers")
Post Reply