mirror of
https://github.com/Obfuscator-Collections/VMProtect.git
synced 2024-12-28 01:09:28 +03:00
5ec92ee05e
Version 3.x.x
224 lines
10 KiB
HTML
224 lines
10 KiB
HTML
<!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>
|