VMProtect/help/ru/manager/activation/api.htm
VNGhostMans 5ec92ee05e first commit
Version 3.x.x
2023-05-14 20:21:09 +07:00

224 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="Stylesheet" type="text/css" href=
"../../default.css" />
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>API Активации</title>
<style type="text/css">
/*<![CDATA[*/
th {text-align:left;}
table {border-collapse:collapse; margin-top: 4px;}
td,th {border: 1px solid #B0B0B0; padding-left:10;padding-right:10;}
/*]]>*/
</style>
</head>
<body>
<h1>API Активации</h1>
<p>API Активации содержит всего 4 функции. Две предназначены для
онлайн-активации и две для оффлайн, когда на компьютере
отсутствует доступ в Интернет. API Активации предназначено для
взаимодействия с Web License Manager, так что разработчику все
равно необходимо вызывать API системы лицензирования, чтобы
использовать серийные номера, полученные от WebLM.</p><strong id=
"VMProtectActivateLicense">VMProtectActivateLicense</strong>
<p>Функция передает код активации на сервер и возвращает серийный
номер, подходящий для этого конкретного компьютера. В противном
случае возвращается <a href="#codes">код ошибки</a>.</p>
<pre class="code">int VMProtectActivateLicense(const char *code, char *serial, int size);
</pre>
<p>Параметр <strong>code</strong> содержит код активации, который
получен от Web License Manager в процессе покупки лицензии.
Параметр <strong>serial</strong> указывает на блок памяти размера
<strong>size</strong>, в который будет помещен сгенерированный
WebLM серийный номер.</p><strong id=
"VMProtectDeactivateLicense">VMProtectDeactivateLicense</strong>
<p>Функция передает серийный номер на сервер для деактивации.
Возможные коды возврата перечислены <a href=
"#codes">ниже</a>.</p>
<pre class="code">int VMProtectDeactivateLicense(const char *serial);
</pre>
<p>Параметр <strong>serial</strong> содержит серийный номер (не
код активации), полученный ранее от WebLM в процессе
активации.</p><strong id=
"VMProtectGetOfflineActivationString">VMProtectGetOfflineActivationString</strong><br />
<strong id=
"VMProtectGetOfflineDeactivationString">VMProtectGetOfflineDeactivationString</strong>
<p>Эти две функции работают практически аналогично двум
предыдущим с той лишь разницей, что они не пытаются подключиться
к серверу WebLM. Вместо этого они возвращают блок текста, который
необходимо скопировать на компьютер где есть доступ в Интернет,
открыть там форму оффлайн-активации WebLM и вставить туда этот
текст.</p>
<pre class="code">int VMProtectGetOfflineActivationString(const char *code, char *buf, int size);
int VMProtectGetOfflineDeactivationString(const char *serial, char *buf, int size);
</pre>
<p>Параметры <strong>code</strong> и <strong>serial</strong>
аналогичны параметрам онлайн-версий функций, параметр
<strong>buf</strong> должен указывать на буфер размером 1000 байт
или больше, туда будет скопирован текстовый блок для формы
оффлайн-активации. Возможные коды ошибок перечислены <a href=
"#codes">ниже</a>.</p>
<h3 id="codes">Возможные Коды Ошибок</h3>
<table border="1" cellspacing="0" cellpadding="2">
<tr>
<th>Код</th>
<th>Значение</th>
<th>Описание</th>
</tr>
<tr>
<td>ACTIVATION_OK</td>
<td>0</td>
<td>Активация прошла успешно, переменная
<strong>serial</strong> содержит серийный номер.</td>
</tr>
<tr>
<td>ACTIVATION_SMALL_BUFFER</td>
<td>1</td>
<td>Буфер для серийного номера слишком маленький. Минимальный
размер буфера вычисляется по формуле: bits / 8 * 3 / 2 + N,
где bits - длина RSA ключа в битах, а N - "константа
безопасности" - дополнительное количество байт на случай
переносов строк и прочих спец-символов. Рекомендуется
использовать как минимум 10.</td>
</tr>
<tr>
<td>ACTIVATION_NO_CONNECTION</td>
<td>2</td>
<td>Модуль активации не смог подключиться к Web License
Manager.</td>
</tr>
<tr>
<td>ACTIVATION_BAD_REPLY</td>
<td>3</td>
<td>Сервер активации вернул неожиданный результат. Это
означает проблемы конфигурации сервера, неправильный url
сервера активации или попытку взлома.</td>
</tr>
<tr>
<td>ACTIVATION_BANNED</td>
<td>4</td>
<td>Этот код активации заблокирован на сервере производителем
ПО через интерфейс WebLM (например, из-за
утечки кода активации с пиратской копией). Не путать с ACTIVATION_ALREADY_USED.</td>
</tr>
<tr>
<td>ACTIVATION_CORRUPTED</td>
<td>5</td>
<td>Что-то пошло совсем не так. Ошибка выдается системой
самопроверки модуля активации и с высокой вероятностью
означает попытку взлома. В случае получения этой ошибки
дальнейшие операции с серийными номерами и активацией не
могут считаться безопасными.</td>
</tr>
<tr>
<td>ACTIVATION_BAD_CODE</td>
<td>6</td>
<td>Данный код не найден в базе данных сервера активаций.
Возможно пользователь ошибся при вводе кода, так что можно
попросить его проверить правильность ввода данных.</td>
</tr>
<tr>
<td>ACTIVATION_ALREADY_USED</td>
<td>7</td>
<td>Счетчик активаций этого кода дошел до нуля и дальнейшие
активации невозможны. Это не обозначает, что код плохой или
заблокирован - код хороший. Пользователю нужно связаться с
производителем ПО и докупить необходимое количество лицензий
или же деинсталлировать программу на других компьютерах,
чтобы увеличить значение счетчика в базе данных.</td>
</tr>
<tr>
<td>ACTIVATION_SERIAL_UNKNOWN</td>
<td>8</td>
<td>Ошибка деактивации. Означает, что данный серийный
номер не найден в базе данных сервера. Соответственно,
деактивация не может быть проведена успешно.</td>
</tr>
<tr>
<td>ACTIVATION_EXPIRED</td>
<td>9</td>
<td>Ошибка активации. Означает, что период действия кода активации истек.</td>
</tr>
<tr>
<td>ACTIVATION_NOT_AVAILABLE</td>
<td>10</td>
<td>Ошибка означает, что активация/деактивация недоступна.</td>
</tr>
</table>
<h3>Маленькие хитрости</h3>
<p>API Активации достаточно простое, так что с ним не должно
возникнуть сложностей. Не забудьте предоставить пользователям
интерфейс для оффлайн-активации, если онлайн-активация
завершилась неудачей из-за проблем с доступом в интернет. Также
не забывайте, что API Активации не сохраняет полученный серийный
номер и не передает его модулю лицензирования - это задача
разработчика. Нет необходимости вызывать API Активации при каждом
запуске приложения - достаточно вызвать его один раз, получить
серийный номер от WebLM, сохранить его в удобном месте и в
дальнейшем использовать только его.</p><br />
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>