mirror of
https://github.com/Obfuscator-Collections/VMProtect.git
synced 2024-12-28 17:29:27 +03:00
122 lines
7.6 KiB
HTML
122 lines
7.6 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>Генераторы ключей</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>
|