Как запустить программу с ключом

от admin

Как запустить программу с ключом

Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

В качестве подопытного кролика я выбрал Expresso — анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней. Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на меня.

Что такое кейген и где его найти. Как правильно использовать KeyGen и Activation программ

Автор — IrchaV . Это цитата этого сообщения Как пользоваться keygen, crack, patch Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье…

1. Инструкция по установке в текстовом файле

Первое, на что надо обратить внимание, есть ли в этой папке файл «readme.txt» или «прочти меня.txt» (могут быть и другие названия). Очень часто в нем написана инструкция по правильной установке программы. Если файл с инструкцией есть, то, смело, открываем его и следуем инструкции. Если файла нет, то ситуация немного усложняется.

Легальность

Но перед тем как говорить о принципах работы кейгена, стоит рассмотреть юридическую сторону вопроса. Поскольку кейгены можно причислить к программам для взлома, их использование является незаконным. Существует сразу несколько законов об авторском праве, которые запрещают обход технических средств защиты. В Соединенных Штатах Америки этот закон существует с 1998 года (описан в в цифровую эпоху»), а в России подобный указ появился в 2008 году (задокументирован в Гражданском кодексе Российской Федерации).

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

Keygen — что это такое?

Инструмент для генерации ключей (key), используя который можно произвести активацию софта (включая игры).

  • Key — переводится как ключ.
  • Gen — от слова generate (генерировать).

Обычно данные инструменты — разные, где каждый предназначен для активации определенной программы/игры. Относится я к категории хакерских инструментов.

Утилита способна генерировать серийный номер на основе таких данных:

  1. Имя владельца лицензии.
  2. Название организации.
  3. Редакция/версия софт, для которого необходимо сгенерировать лицензионный номер.
  4. ID программы.

После указания данных — кнопкой Generate запускается процесс генерации.

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

Интерфейс утилиты, количество кнопок/полей — зависит от версии.

2. Серийный номер в текстовом файле

Для подтверждения прав на программу иногда требуется серийный номер. Имея его, вы сможете установить программу бесплатно.

Серийный номер может потребоваться либо при установке программы, либо при первом запуске уже после установки. Пропустить этот шаг вы не сможете, дальше программа не пойдет, пока вы не введете серийный номер (рис.1).

рис.1 Запрос на ввод серийного номера

Пример серийного номера: ADE-R119-F196-k9BA-17CD

В папке с программой (в той же папке что и установочный файл) может находиться файл с серийным номером. Чаще всего он называется «Серийный номер», «Serial number», «Ключ», «key», «crack». Открываем этот файл, копируем серийный номер и вставляем его в нужное место.

  1. Начать установку программы, пока не потребует серийный номер
  2. Открыть текстовый файл, скопировать серийный номер (Cntr+C)
  3. Вставить его в то место, где требуется (Cntr+V)
  4. Все

Почему антивирус реагирует на кейген как на вирус?

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

Другой причиной «вируса в кейгене» могут быть так называемые ложные срабатывания антивируса — то есть реально вируса нет, но антивирус кричит, что нашёл (это очень интересная тема, которая кристально ясна всем IT-специалистам, но никогда — обычным пользователям).

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

Изучаем содержимое папки с установочным файлом

Открываем папку с установочными файлами программы и изучаем ее содержимое. Возможно, в ней вы найдете папку crack, тогда открываем ее. Вот возможные варианты, что вы можете найти.

  1. Текстовый файл (.txt)
  2. Файл-приложение (.exe). Открываем.
  3. В папке нет ничего кроме установочного файла

4.Получение доступа при помощи «Request code»

Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
Пример окна регистрации (рис.4):

рис.4 Начало регистрации с «Request code»

Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)

В данном случае:
— Get an activation code – получить код активации
— Enter an activation code – ввести код активации (нужный нам вариант)

рис.5 Запрос кода авторизации

Открываем из папки с установкой программы файл keygen.exe (crack.exe, …) (рис.6).

рис.6 Генератор кода авторизации

Теперь нам нужно скопировать «Request code» из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
Вставляем в последнее окно скопированный код (Cntr+V).

Обратите внимание.
Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть «Request code». Должно получиться так (рис.7):

рис.7 Генератор после вставления «Request code»

После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):

рис.8 Полученный код авторизации

Копируем «Auth code» из программы рис.7 в окно на рис.5 и получаем так (рис.9):

рис.9 Вставляем код авторизации

Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.

Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.

  1. Установить программу
  2. Запустить программу
  3. Выбрать режим ввода серийного номера (Enter …)
  4. Открыть keygen
  5. Скопировать «Request code» из программы в «keygen» (обе строчки)
  6. В «keygen» нажать кнопку сгенерировать
  7. Скопировать код, полученный в «keygen»
  8. Вставить его в требуемое место в программе (Cntr+V)
  9. Нажать готово
  10. Все

5. Как пользоваться patch

Иногда для бесплатной установки программы нельзя просто сгенерировать серийный номер. В таких случаях используют специальные программы, которые изменяют файлы так, чтобы программа не требовала денег. В папке с установщиком программы должен находиться файл «Patch» (он может называться — patch, keygen, crack, …). Это и есть программа, которую еще называют патч.

Первое, что мы должны сделать, это установить программу (ту, которую мы хотим сделать бесплатной). После установки открывать программу не надо.

Дальше, надо переписать patch (или другой файл-патч) в папку, в которую мы установили программу. Скорее всего это диск С, папка Program files, папка с название программы (C:/Program files/«название программы»).

Дальше открываем файл patch (или другой файл-патч)

Вот пример файла patch.exe (рис.10):

рис.10 Программа-патч

Чаще всего в этом файле только одна кнопка. В данном случае это кнопка Apply patch. В некоторых случаях она может называться Crack. Нажимаем на эту кнопку и программой можно пользоваться бесплатно.

  1. Установить программу
  2. Скопировать Patch.exe в папку, куда установили программу
  3. Открыть Patch.exe
  4. Нажать единственную кнопку в программе «Patch»
  5. Запустить программу
  6. Все

6. Файлы, для установки программы бесплатно, отсутствуют

Может быть и такое, что программу вы скачали без пиратского «лекарства». То есть, без готовых серийных номеров, кейгенов или патчей. Тогда задача усложняется. Лучше конечно скачивать программы с готовыми «лекарствами». Но что если все-таки такая проблема встала?

Как пользоваться keygen, crack, patch

Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье рассмотрены самые распространенные способы установки пиратских программ. Как пользоваться keygen? Как пользоваться crack? Что такое request code? Как пользоваться patch?

1. Инструкция по установке в текстовом файле

Первое, на что надо обратить внимание, есть ли в этой папке файл «readme.txt» или «прочти меня.txt» (могут быть и другие названия). Очень часто в нем написана инструкция по правильной установке программы. Если файл с инструкцией есть, то, смело, открываем его и следуем инструкции. Если файла нет, то ситуация немного усложняется.

2. Серийный номер в текстовом файле

Для подтверждения прав на программу иногда требуется серийный номер. Имея его, вы сможете установить программу бесплатно.

Серийный номер может потребоваться либо при установке программы, либо при первом запуске уже после установки. Пропустить этот шаг вы не сможете, дальше программа не пойдет, пока вы не введете серийный номер (рис.1).

Пример серийного номера: ADE-R119-F196-k9BA-17CD

В папке с программой (в той же папке что и установочный файл) может находиться файл с серийным номером. Чаще всего он называется «Серийный номер», «Serial number», «Ключ», «key», «crack». Открываем этот файл, копируем серийный номер и вставляем его в нужное место.

  1. Начать установку программы, пока не потребует серийный номер
  2. Открыть текстовый файл, скопировать серийный номер (Cntr+C)
  3. Вставить его в то место, где требуется (Cntr+V)
  4. Все
Читать:
Как сделать разрешение 1280 на 960 в кс го amd

3. Как пользоваться keygen

В папке с программой может находиться файл-программа (keygen, crack, . ).

Вот пример такой программы, если ее запустить (рис.2):

Нажимаем на кнопку «Generate» (рис.3)

Копируем серийный номер, вставляем в нужное место и все готово. Продолжаем установку, либо нажимаем "Ок" (возможно "Готово", "далее" . ), если установка уже завершена.

  1. Начать установку программы, пока не потребует серийный номер
  2. Открыть файл Keygen
  3. Сгенерировать серийный номер и скопировать (Cntr+С)
  4. Вставить его в то место, где требуется (Cntr+V)
  5. Все

4.Получение доступа при помощи "Request code"

Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
Пример окна регистрации (рис.4):

Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)

В данном случае:
— Get an activation code – получить код активации
— Enter an activation code – ввести код активации (нужный нам вариант)

Открываем из папки с установкой программы файл keygen.exe (crack.exe, . ) (рис.6).

Теперь нам нужно скопировать "Request code" из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
Вставляем в последнее окно скопированный код (Cntr+V).

Обратите внимание.
Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть "Request code". Должно получиться так (рис.7):

После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):

Копируем "Auth code" из программы рис.7 в окно на рис.5 и получаем так (рис.9):

Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.

Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.

  1. Установить программу
  2. Запустить программу
  3. Выбрать режим ввода серийного номера (Enter …)
  4. Открыть keygen
  5. Скопировать "Request code" из программы в "keygen" (обе строчки)
  6. В "keygen" нажать кнопку сгенерировать
  7. Скопировать код, полученный в "keygen"
  8. Вставить его в требуемое место в программе (Cntr+V)
  9. Нажать готово
  10. Все

5. Как пользоваться patch

Иногда для бесплатной установки программы нельзя просто сгенерировать серийный номер. В таких случаях используют специальные программы, которые изменяют файлы так, чтобы программа не требовала денег. В папке с установщиком программы должен находиться файл "Patch" (он может называться — patch, keygen, crack, . ). Это и есть программа, которую еще называют патч.

Первое, что мы должны сделать, это установить программу (ту, которую мы хотим сделать бесплатной). После установки открывать программу не надо.

Дальше, надо переписать patch (или другой файл-патч) в папку, в которую мы установили программу. Скорее всего это диск С, папка Program files, папка с название программы (C:/Program files/«название программы»).

Дальше открываем файл patch (или другой файл-патч)

Вот пример файла patch.exe (рис.10):

Чаще всего в этом файле только одна кнопка. В данном случае это кнопка Apply patch. В некоторых случаях она может называться Crack. Нажимаем на эту кнопку и программой можно пользоваться бесплатно.

  1. Установить программу
  2. Скопировать Patch.exe в папку, куда установили программу
  3. Открыть Patch.exe
  4. Нажать единственную кнопку в программе "Patch"
  5. Запустить программу
  6. Все

6. Файлы, для установки программы бесплатно, отсутствуют

Может быть и такое, что программу вы скачали без пиратского «лекарства». То есть, без готовых серийных номеров, кейгенов или патчей. Тогда задача усложняется. Лучше конечно скачивать программы с готовыми «лекарствами». Но что если все-таки такая проблема встала?

Аппаратная защита программ — это же просто

imageПеред многими разработчиками программного обеспечения возникает вопрос защиты своего труда. Поиск в сети на эту тему выдает кучу информации, но практических примеров и здравых описаний нет. Поэтому в качестве примера построения защиты расскажу о привязке программы к USB ключу.

imageДля защиты я выбрал USB ключ с HID интерфейсом и с открытым кодом программного модуля защиты. Такой HID-ключ позволяет обойтись без установки драйверов ключа, что очень удобно для конечного пользователя. Также HID интерфейс прекрасно работает в «SafeMode» режимах загрузки операционных систем.
Открытый код модуля защиты – не нужно линковать библиотеки и прилагать к защищаемой программе чужие *.dll файлы.
Сам ключ содержит 5 участков памяти по 2 кБайта и RTC (часы с батарейкой), каждый участок защищен ПИН-кодом из 16 байт.

Цель защиты

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

Защищаемый объект

imageДля примера создадим самую простую программу: диалоговое окно MFC, воспользовавшись волшебником visual studio. В наше приложение, кроме потока окна, добавим поток, который в основном окне печатает текущее время.

Подготовка ключа

imageПрежде чем использовать ключ его необходимо сконфигурировать с помощью утилиты из SDK ключа:
— установить на защищенный участок памяти свой секретный ПИН код (заводские значения: <0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff>).
— заполнить необходимыми данными сам участок памяти.

ПИН я сменил на: < 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f >.
Такой же последовательностью заполнил первые 16 байт в памяти ключа.

Установка защиты

alt=»image» />Для внедрения программного модуля защиты в созданный проект нужно подключить 2 файла: «HID_1.cpp» и «HID_1.h». В них находится исходный код класса, который позволяет обращаться к ключу.
alt=»image» />В файле «HID_1.h» можно изменить настройки модуля, и параметры шины USB ключа — оставим все по умолчанию. Компилируем проект.

После успешной компиляции и запуска всё это выглядит так:

image

Теперь все готово для работы с ключом

В коде, где создается само окно приложения, файл «Example_1.cpp», добавляем обращение к ключу:

.
#include «HID_1.h»
.
BYTE my_main_pin[16] = <0x00, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f>;
//ВНИМАНИЕ. Не храните ПИН-код в открытом виде. В примере это сделано для наглядности.
.
CExample_1Dlg dlg;
INT_PTR nResponse;
// -======== Проверка ключа ========-
// Создание класса для работы с ключем.
HID_bridge my_hid(my_main_pin, //Указатель на массив ПИН-кода.
HID_DEFAULT_PROFILE_ID); //Устанвка номера профиля ( профиль 0 )
BYTE my_buf[16]; //буфер, в который будут считаны данные из ключа
int answ = my_hid.read_closed_data_ex(
imagemy_buf, // Указатель на буфер, в который сохранятся принятые данные профиля.
image0, // Адрес в профиле, с которого начнется чтение, в данном случае чтение с самого начала профиля (с 0-го байта).
imagesizeof(my_buf)); // Количество байт, которое нужно прочесть. Размер буфера.
int result = -1;
if(answ == HID_KEY_OK) < // анализируем ответ
image// Если ключ найден и данные считаны — анализируем эти данные
image// Данные, которые должны быть записаны в ключе:
imageBYTE data_in_key[16] = <0x03, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f>;
imageresult = memcmp(data_in_key, my_buf, sizeof(my_buf)); // Сравниваем полученные данные
>
if(!result) <
imagenResponse = dlg.DoModal();
> else <
imagenResponse = NULL;
imageAfxMessageBox(«Программа не запускается.»);
>
// -======== Проверка ключа END ========-
if (nResponse == IDOK)
<

imageТеперь при попытке запустить программу без сконфигурированного ключа пользователь получит сообщение «Программа не запускается».
Подобную проверку можно добавить и в инициализацию самого диалога, и в любое критически важное, с точки зрения функционала, место.

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

Код потока, следящего за ключом

.
volatile bool glob_exit_f = false;
.
DWORD WINAPI myThread_watchdog(LPVOID lParam)
<
imageBYTE my_main_pin[16] = <0x00, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f>;
imageBYTE data_in_key[16] = <0x03, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f>;
imageHID_bridge my_hid(
imagemy_main_pin, //Указатель на массив ПИН-кода.
imageHID_DEFAULT_PROFILE_ID); //Устанвка номера профиля.
imageBYTE my_buf[16]; //буфер, в который будут считаны данные из ключа
imageint result = -1;
imageint answ = -1;
imagewhile(!glob_exit_f) <
imageansw = my_hid.read_closed_data_ex(
imagemy_buf, // Указатель на буфер, в который сохранятся принятые данные профиля.
image0, // Адрес в профиле, с которого начнется чтение, в данном случае чтение с самого начала профиля (с 0-го байта).
imagesizeof(my_buf)); // Количество байт, которое нужно прочесть. Размер буфера.
imageresult = -1;
imageif(answ == HID_KEY_OK) < // анализируем ответ
image// Если ключ найден и данные считаны — анализируем эти данные
image// Данные, которые должны быть записаны в ключе:
imageBYTE data_in_key[16] = <0x00, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f>;
imageresult = memcmp(data_in_key, my_buf, sizeof(my_buf)); // Сравниваем полученные данные
image>
imageif(result) <
imageglob_exit_f = true;
image> else <
imageSleep(WATCHDOG_SLEEP_TIME);
image>
image>
imagereturn 0;
>

В итоге

imageПоставленная задача защиты решена. Обращаю Ваше внимание, что это пример, в котором всё упрощено. Строить настоящую защиту на одном флаге, конечно же, не стоит. А хранить ПИН-код доступа как в примере — вообще преступление.
АПИ ключа намного шире, в данном примере я использовал лишь малую часть всех возможностей.

А что же происходит на шине USB?

imageЛюбой USB сниффер покажет какие устройства подключены к шине данных и чем они обмениваются с компьютером.

image

imageДля меня важным показателем является время ответа ключа на команду. На рисунке «черным» выделена команда к ключу, «синим» — ответ ключа. В среднем время отклика составляет 32 мс (+31… +32 . ). Т.е. за это время ключ обработал команду и вернул ответ. Больших задержек это не вносит.

Криптографическая защита протокола обмена

image

imageHID пакеты на шине USB имеют длину 64 байта. Как сказано в описании ключа первые 32 байта этого пакета технологические, остальные 32 байта – шифрованные алгоритмом RC6, причем для каждой пары пакетов (TX-RX) ключ шифрования выбирается случайно. Этот временный ключ шифруется ключом, созданным на основе ПИН-кода, того самого в 16 байт, о котором написано выше.
Получается, что передача одной и той же команды ключу и получение одного и того же ответа приводит к абсолютно не связанным транзакциям на шине USB. Если кто-то решит анализировать трафик с целью написания табличного эмулятора, то он будет разочарован. Так как пары — (TX-RX) ни разу не повторяются.

Похожие статьи