При онлайн активации продукта возникает ошибка SERIAL_STATE_FLAG_BAD_HWID. Ошибка возникает только в x64 сборке и только на одном ноутбуке DELL XPS 13; x86 сборки активируются нормально. Воспроизводится на VMProtect 3.1.2.859 и 3.2.0.976.
Сненерированный HWID для этого ноутбука (одинаковый для x64 и x86):
Есть алгоритм как получить из серийного номера, который возвращает сервер активации, HWID продукта? Судя по документации серийник зашифрован ассиметричным ключем.
Посмотрели логи: от клиента приходит запрос с правильным HWID
GET /activation.php?code=XXXX-XXXX-XXXX&hwid=nLjhdDVXlOvLSVyfKpdU%2feryzmFmf2qa5nPpIPJf87FmKtI1Osf5khpaZHKyIosfElfgc%2fg9ov3wFuzJnPNGTWfP7z0%3d&hash=...
Сервер в ответ возвращает серийный номер с другим HWID:
При блокировании этого серийного номера в веб интерфейсе последующие активации проходят нормально, при разблокировке - возвращается ошибка.
Выглядит так, что сервер неправильно сопоставляет HWID.
Ещё раз сравнили запросы при активации для x86 и x64 версий защищаемого приложения. Для x64 HWID передается длинее, видимо это приводит к возврату невалидного серийного номера.
x86:
GET /activation.php?code=...&hwid=nLjhdDVXlOvLSVyfKpdU%2feryzmFmf2qa5nPpIPJf87FmKtI1Osf5khpaZHKyIosf%01%02+&hash=
x64:
GET /activation.php?code=...&hwid=nLjhdDVXlOvLSVyfKpdU%2feryzmFmf2qa5nPpIPJf87FmKtI1Osf5khpaZHKyIosfElfgc%2fg9ov3wFuzJnPNGTWfP7z0%3d&hash=
У нас стабильно воспроизводится проблема на новых лицензиях для x64 сборок. В x32 сборках такой проблемы нет, так как HWID обрезается в запросе к серверу.
Если первым активируется машина с длинным HWID, то остальные машины с длинным HWID при активации получают серийный номер от этой активации. Если у машины короткий HWID, то она получает новый серийный номер.