Кейген

eXeL@B DVD

Материал из Справочник исследователя программ

Перейти к: навигация, поиск

Кейген (также: ключеген, англ. KeyGen - key generator) - генератор регистрационных ключей. Одним из результатов работы крэкера является создание кейгена. Суть кейгена заключается в том, чтобы создать такие ключи, которые принимаются шароварным софтом за валидные (официальные) ключи. То есть кейген создаёт в точности такой же ключ(и), который вы могли бы купить у shareware-разработчика. То есть, на компьютере пользователя не производится модификация самой программы, ей лишь "подсовывается" сгенерированный регистрационный код.

Для крэкера, обычно, сделать кейген это более трудоемкая задача, требующая к тому же более высокой подготовки, чем для создания патча.

Считается, что кейген (в отличие от патча и лоадера) это самый красивый способ взлома программы и самый лучший результат работы крэкера, сказать наверняка почему все так считают - сложно (это из области внегласного кодекса крэкера), но главные аспекты вы уже прочитали выше: "нет модификаций в коде программы", "повышенная трудоемкость задачи и высокая квалификация крэкера", в общем, кейген это "чистая работа".

Сам файл кейгена для соблюдения "красоты" всей работы должен соответствовать следующему перечню:

1. Программка-кейген должна быть по возможности написана на ассемблере.
2. EXE файл кейгена должен быть минимален по размеру.
3. Интерфейс кейгена должен быть красивым и модным (красивый логотип, фоновая музыка и так далее)

Кстати, та музыка, которую вы слышите в кейгенах это обычно не MP3, а ранее популярная трэкерная музыка. Часто, крэкер создавший кейген не является автором музыки.

Содержание

Этапы создания кейгена

1. Определение места внутри EXE файла, где генерируется ключ.
2. Решение о возможности создать кейген.
3. Математический анализ алгоритма генерации ключа (реверсинг).
4. Написание исходного кода кейгена.

Определение места внутри EXE файла, где генерируется ключ также, как и при всех других способах взлома, крэкеру необходимо сначала изучить алгоритм работы программы (при помощи отладчика или дизассемблера) и определить место в машинном коде исполняемого файла, где размещается защита программы.

Решение о возможности создать кейген проанализировав защиту программы крэкер должен прийти к выводу будет он создавать кейген или нет. Решение о создание кейгена базируется на следующих мыслях крэкера:

1. Возможно ли технически создать кейген к этой программе*.
2. Имею ли я достаточную подготовку для создания кейгена.
3. Располагаю я временем и желанием на это в данный момент.
4. Не рациональнее ли сделать патч или лоадер в данном случае.

* - бывает так, что защита программы реализуется на стойких алгоритмах шифрования (криптография), 
    которые практически невозможно взломать.

Математический анализ алгоритма генерации ключа - чаще всего кейген создается путём разбора крэкером всей математической идеи, которую вложил программист в алгоритм генерации ключа. Узнав весь алгоритм защиты, крэкер может перейти от машинных кодов или ассемблерный инструкций, которые он разбирал, обратно к исходному коду генерации ключа на языке высокого уровня, то есть происходит процесс, называющийся в общем случае реверсингом. В редких случаях, алгоритм генерации ключа не разбирается "по винтикам", а копируется из исходной программы в виде машинных кодов (как есть) - это несколько противоречит идее о красоте взлома с созданием кейгена.

Написание исходного кода кейгена уже является простой задачей программирования, когда алгоритм известен.

Мотивация крэкера на создание кейгена

1. Основной задачей крэкера при создание кейгена должно быть получение удовольствия от процесса неторопливого разбора всей математики и логики алгоритма защиты программы. И радость от достижения поставленной цели. Самое главное уйти от суеты, уютно устроиться свободным вечером за компьютером и спокойно, за чашечкой кофе, думать о том, чего не видят другие; постепенно разгадывать мысли, которые в голове держал программист при создание своего творения.

2. Создание кейгена это возможность для крэкера заявить всем о своём уровне и перейти на более высокую ступень уважения. Часто, для создания кейгена должна быть особая мотивация, ведь опытный крэкер всегда видит более простой и рациональный путь обхода защиты. Поэтому мотивацию может вдохнуть необходимость держать планку, находясь в крэкерской команде.

Почему мне попадаются зараженные вирусами кейгены?

Настоящий крэкер всегда соблюдает кодекс крэкера и никогда не пишет вирусы и уж тем более не включает их в свои кейгены, патчи и лоадеры. Но вирус в кейгене действительно может быть, тому есть ряд причин: во-первых, для некоторых людей (не крэкеров) кейгены это продукт, который они используют в своих корыстных целях, это просто акулы интернет бизнеса. Зараженный вирусом файл (не важно кейген это или нет), который вы запустите на своём компьютере, так или иначе приносит материальные доходы создателям вирусов. А заражают они ими кейгены по одной простой причине: потому что кейгены, крэки и патчи нужны людям, то есть их будут скачивать и запускать. Второй причиной "вируса в кейгене" могут быть так называемые ложные срабатывания антивируса - то есть реально вируса нет, но антивирус кричит, что нашёл (это очень интересная тема, которая кристально ясна всем IT-специалистам, но никогда - обычным пользователям).

В итоге встаёт вопрос: как уберечься от вируса в кейгене, ответ на него есть: из кейгена мы должны получить регистрационный ключ, поэтому сам кейген можно запустить на компьютере который либо находится под защитой антивируса (не забывайте, что его защиты не идеальна), либо его безопасность не кардинально важна. То есть, регистрационный код переписывается на бумажку и с ней уже идёте к своему основному компьютеру. Если у вас только один компьютер, то можно на него поставить виртуальная машина, например VMWare и у вас появится дополнительный компьютер, который полностью изолирован и на нём безопасно запускать все что угодно.

Возможно ли имея два-три рабочих ключа как-то сделать кейген?

Нет, практически невозможно (за редким исключением). Конечно, иногда крэкеру может немного помочь хотя бы один настоящий регистрационный ключ, полученный от разработчика, но создание кейгена это всегда разбор функционирования алгоритма защиты самой программы (EXE файла), а предположения и угадывание это не метод.