Он-лайн лицензия с привязкой к ID оборудования.

Подскажите, в редакции Ultimate надо для каждого пользователя генерировать персональный исполняемый файл ПО с внедренной лицензией или есть возможность реализовать следующую схему:

  1. Пользователь устанавливает публичную версию ПО (в котором отсутсвуют какие-либо сведения лицензиях).
  2. На рабочей станции в программе VMProtect генерирует уникальный ID оборудования, который сообщается пользователю.
  3. Пользователь открывает сайт производителя, вводит полученый ID и получает код активации для использования ПО, привязанный к его ID. В коде активации содержатся закодированные сведения об ID оборудования, сведения о пользователе, периоде лицензионного использования ПО и т.д.
  4. В программе пользователь вводит код активации, полученый на сайте, программа его декодирует и сравнивает ID из введенного кода с ID текущего оборудования, если они совпадают, то работает в полноценном режиме, если не совпадают - в режиме демо-версии. Код активации сохраняется, и в дальнейшем такая проверка производится при каждом запуске программы, определяя режим её работы.

Разумеется, кроме сравнения по ID могут выполняться любые необходимые проверки, но для реализации описаной схемы в первую очередь важно, чтобы в VMProtect имелась функция, возвращающая ID оборудования.

в помощь

или писать свой на основе тех примеров что в папке с программой идут

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

Что-то не нашел никаких примеров, перекопал всю папку с программой.

Почитал Help и нашел VMProtectGetCurrentHWID - похоже это та функция, которая возвращает ID оборудования.

вот моя функция для получения id оборудования

function GetHwid() : AnsiString;
var
  nSize : Integer;
  Buf:array [0..511] of AnsiChar;
begin

  try
    nSize := VMProtectGetCurrentHWID(nil, 0); // получим необходимый размер буфера
    VMProtectGetCurrentHWID(Buf, nSize);
    Result := Buf;
  except
    Result := '';
  end;

end;

Спасибо, но заинтересовали примеры реализации, они вообще где должны лежать?

Еще момент, нашел в старой теме комментарий

Это до сих пор актуально или сейчас совпадением является совпадение всех компонент?

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

Спасибо, но заинтересовали примеры реализации, они вообще где должны лежать?

%PUBLIC DOCUMENTS%/VMProtect/Licensing

Это до сих пор актуально или сейчас совпадением является совпадение всех компонент?

Актуально до сих пор.

%PUBLIC DOCUMENTS%/VMProtect/Licensing - это на компьютере, где установлен VMProtect?

Да. Можно также нажать на “Примеры” на стартовом окне VMProtect и посмотреть проводником где именно они лежат.

Большое спасибо, всё нашёл.