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

122 lines
7.6 KiB
HTML
Raw Permalink 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>Генераторы ключей</title>
<style type="text/css">
</style>
</head>
<body>
<h1>Генераторы ключей</h1><strong>Зачем они нужны?</strong>
<p>Помимо VMProtect, серийные номера могут генерироваться другими
программами - генераторами. Это нужно для автоматизации выдачи
номеров без участия человека. Покупатель покупает продукт,
регистратор делает HTTP-запрос на сайт производителя, там
запускается программа-генератор и на основе данных о покупателе
формирует серийный номер. Номер отправляется покупателю и
производителю. Производитель вносит его в базу VMProtect вручную,
через окно импорта лицензий.</p><strong>Принцип работы</strong>
<p>Система лицензирования VMProtect построена на асимметричных
алгоритмах, поэтому для генерации серийных номеров требуется
секретный ключ продукта. Этот ключ можно экспортировать в окне
свойств продукта и передать программе-генератору подходящим для
нее способом.</p>
<p>Программа-генератор вызывается регистратором через
HTTP-запрос. Генератор на PHP может быть вызван напрямую,
генератор в виде DLL - косвенно, но алгоритм остается одним и тем
же:</p>
<ul>
<li>Получить данные о пользователе от регистратора</li>
<li>Добавить необходимую информацию, которую указал
производитель</li>
<li>Сформировать серийный номер</li>
<li>Зашифровать его одним из алгоритмов</li>
<li>Передать результат регистратору</li>
</ul><strong>Существуют ли готовые генераторы?</strong>
<p>С системой лицензирования поставляется три готовых генератора
серийных номеров <a href="keygen_dll.htm">в виде DLL</a>,
<a href="keygen_net.htm">для платформы .Net</a> и <a href=
"keygen_php.htm">реализованный на PHP</a>.</p><strong>Можно ли
сделать свой генератор?</strong>
<p>Можно. Формат серийного номера находится <a href=
"serial_format.htm">здесь</a>, алгоритмы шифрования серийного
номера описаны <a href=
"algorithms.htm">здесь</a>.</p><strong>Насколько это
безопасно?</strong>
<p>В общем случае - вполне безопасно. Однако есть несколько
рекомендаций, которым стоит следовать:</p>
<ul>
<li><strong>Используйте протокол HTTPS</strong> - если ваш
регистратор умеет делать запрос по HTTPS, а ваш хостинг
позволяет отвечать на такие запросы, то этот вариант
предпочтительнее обычного HTTP, т.к. поток данных будет
зашифрован и сгенерированный серийный номер сможет получить
только регистратор.</li>
<li><strong>"Спрячьте" генератор</strong> - убедитесь, что
генератор нельзя вызвать случайно. Адрес
www.site.com/keygen.php - плохая идея. А вот
www.site.com/abc123.php - уже лучше. Убедитесь, что на
генератор нет внешних ссылок, что он не показывается при
просмотре содержимого директории сайта и не помещайте его в
служебные файлы типа robots.txt. Чем меньше известно о
расположении генератора - тем лучше. Как вариант - можно
вынести генератор на другой сайт.</li>
<li><strong>Убедитесь, что вас вызывает регистратор</strong> -
в программе, обрабатывающей запрос от регистратора, необходимо
проверить IP-адрес вызывающей стороны. Обычно регистраторы
публикуют список адресов, с которых они могут вызвать
генератор. Найдите такой у вашего регистратора и добавьте
проверку. В случае несовпадения адреса, лучше не выдавать
понятных ошибок. Не возвращайте ничего или верните ошибку 404.
Не давайте повода понять, почему вызов оказался неудачен.</li>
<li><strong>Проверяйте входные параметры</strong> - в
настройках продукта у регистратора обычно дается возможность
указать строку запроса, который регистратор будет делать для
получения лицензии. Скажем, вы хотите получать имя
пользователя, адрес его электронной почты, дату продажи и номер
заказа. Убедитесь при получении запроса, что все параметры
переданы и что все они имеют корректный формат. Не отвечайте на
запросы с ошибками. О любых ошибках уведомляйте себя отправкой
e-mail со всеми параметрами, с которыми был вызван генератор.
Это поможет разобраться в причинах проблемы.</li>
<li><strong>Добавьте "пароль"</strong> - укажите в запросе,
посылаемом регистратором, дополнительный параметр - пароль. С
неочевидным именем и значением. Проверяйте его на принимающей
стороне. В случае несовпадения или отсутствия - не генерируйте
номер.</li>
</ul><br />
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>