124 lines
5.4 KiB
HTML
124 lines
5.4 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>Шаг 1.9: Привязка к оборудованию</title>
|
||
<style type="text/css">
|
||
/*<![CDATA[*/
|
||
div.c2 {text-align: center}
|
||
p.c1 {color:red;}
|
||
/*]]>*/
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>Шаг 1.9: Привязка к оборудованию</h1><strong>Получение
|
||
идентификатора оборудования</strong>
|
||
|
||
<p>Прежде чем привязываться к оборудованию, необходимо получить
|
||
идентификатор оборудования. Идентификатор помещается в серийный
|
||
номер и при передаче этого номера системе лицензирования
|
||
происходит проверка соответствия идентификаторов. Поэтому для
|
||
начала получим идентификатор нашего оборудования. Сократим
|
||
<strong>main()</strong> до самого короткого варианта:</p>
|
||
<pre class="code">int main(int argc, char **argv)
|
||
{
|
||
int nSize = VMProtectGetCurrentHWID(NULL, 0);
|
||
char *buf = new char[nSize];
|
||
VMProtectGetCurrentHWID(buf, nSize);
|
||
printf("HWID: %s\n", buf);
|
||
delete [] buf;
|
||
return 0;
|
||
}
|
||
</pre>
|
||
|
||
<p>Запустив эту программу, мы получим тестовый идентификатор
|
||
оборудования, используемый по умолчанию:</p>
|
||
<pre class="code">HWID: myhwid
|
||
</pre>
|
||
|
||
<p>Чтобы изменить идентификатор, используемый по умолчанию,
|
||
добавьте в ini-файл строку:</p>
|
||
<pre class="code">MyHWID=test
|
||
</pre>
|
||
|
||
<p>Запустив программу после этого, мы увидим, что система
|
||
лицензирования теперь считает "test" идентификатором
|
||
оборудования:</p>
|
||
<pre class="code">HWID: test
|
||
</pre>
|
||
|
||
<p class="c1"><strong>Внимание!</strong> реальный идентификатор
|
||
оборудования программа будет выдавать только после ее обработки в
|
||
VMProtect.</p><br />
|
||
<strong>Серийный номер с привязкой к оборудованию</strong>
|
||
|
||
<p>Чтобы наш тестовый серийный номер был привязан к оборудованию,
|
||
добавим в ini-файл еще одну строчку, на этот раз с
|
||
идентификатором, "записанным" в номер:</p>
|
||
<pre class="code">KeyHWID=test
|
||
</pre>
|
||
|
||
<p>А функцию <strong>main()</strong> слегка усложним, она снова
|
||
будет подавать серийный номер и анализировать получаемый
|
||
результат:</p>
|
||
<pre>
|
||
int main(int argc, char **argv)
|
||
{
|
||
int nSize = VMProtectGetCurrentHWID(NULL, 0);
|
||
char *buf = new char[nSize];
|
||
VMProtectGetCurrentHWID(buf, nSize);
|
||
printf("HWID: %s\n", buf);
|
||
delete [] buf;
|
||
|
||
char *serial = "Xserialnumber";
|
||
int res = VMProtectSetSerialNumber(serial);
|
||
print_state(res);
|
||
return 0;
|
||
}
|
||
</pre>
|
||
|
||
<p>Запустив код, получим следующий результат:</p>
|
||
<pre class="code">HWID: test
|
||
state = 0
|
||
</pre>
|
||
|
||
<p>Система лицензирования сравнила текущий идентификатор
|
||
оборудования и тот, который был запиан в серийном номере.
|
||
Идентификаторы совпали и функция
|
||
<strong>VMProtectSetSerialNumber()</strong> вернула 0 - серийный
|
||
номер подходит.</p>
|
||
|
||
<p>Попробуем теперь "запустить" нашу программу на другом
|
||
оборудовании. Для этого поменяем значение "test" параметра MyHWID
|
||
в ini-файле на "new test". И снова запустим программу:</p>
|
||
<pre class="code">HWID: new test
|
||
state = SERIAL_STATE_FLAG_BAD_HWID
|
||
</pre>
|
||
|
||
<p>На этот раз система лицензирования вернула флаг
|
||
SERIAL_STATE_FLAG_BAD_HWID, означающий несовпадение реально
|
||
идентификатора оборудования с тем, что хранится в серийном
|
||
номере. Текущий идентификатор оборудования, выведенный на экран -
|
||
"new test", а в серийном номере хранится "test". Поменяв в
|
||
ini-файле значение параметра KeyHWID на "new test" можно добиться
|
||
работы серийного номера и на этом "оборудовании".</p><br />
|
||
<a href="step1A_userdata.htm">Следующий шаг</a>
|
||
<br />
|
||
<br />
|
||
<br />
|
||
<br />
|
||
<hr noshade="noshade" size="1" />
|
||
|
||
<div align="center">
|
||
© 2006-2015 Copyright VMProtect Software
|
||
</div>
|
||
</body>
|
||
</html>
|