VMProtect/help/ru/manager/usage/step1A_userdata.htm

77 lines
3.0 KiB
HTML
Raw Normal View History

2023-05-14 16:21:09 +03:00
<!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.10: Пользовательские данные</title>
</head>
<body>
<h1>Шаг 1.10: Пользовательские данные</h1>
<p>Серийный номер может содержать до 255 байт произвольных
данных, которые система лицензирования без изменений передает
вызывающей программе. Это может быть какая-то дополнительная
информация о продаже, данные, без которых не будет работать
полная версия, или еще что-нибудь. Изменим функцию
<strong>main()</strong>, чтобы она считывала данные из серийного
номера и показывала их на экране:</p>
<pre class="code">int main(int argc, char **argv)
{
char *serial = "Xserialnumber";
int res = VMProtectSetSerialNumber(serial);
print_state(res);
if (res) return 0;
VMProtectSerialNumberData sd = {0};
VMProtectGetSerialNumberData(&amp;sd, sizeof(sd));
printf("Serial number has %d byte(s) of data\n", sd.nUserDataLength);
for (int i = 0; i &lt; sd.nUserDataLength; i++)
printf("%02X ", sd.bUserData[i]);
printf("\n");
return 0;
}
</pre>
<p>Ini-файл при этом сократим до такого вида:</p>
<pre class="code">[TestLicense]
AcceptedSerialNumber=Xserialnumber
</pre>
<p>Теперь запустим программу и убедимся, что наш серийный номер
подходит, но не содержит никаких данных:</p>
<pre class="code">state = 0
Serial number has 0 byte(s) of data
</pre>
<p>Чтобы добавить пользовательские данные в серийный номер,
необходимо создать в ini-файле переменную UserData и присвоить ей
строчку из HEX-символов. Символы должны идти парами, т.е. длина
строки должна быть кратна 2. Строка может быть, например,
такой:</p>
<pre class="code">UserData=010203A0B0C0D0E0
</pre>
<p>В этом случае при запуске программы мы получим следующий
результат:</p>
<pre class="code">state = 0
Serial number has 8 byte(s) of data
01 02 03 A0 B0 C0 D0 E0
</pre><br />
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>