Сайт о телевидении

Сайт о телевидении

» » Что такое Keygen и для чего он нужен? Как правильно использовать KeyGen и Activation программ

Что такое Keygen и для чего он нужен? Как правильно использовать KeyGen и Activation программ

Автор - IrchaV . Это цитата этого сообщения

Как пользоваться 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. Открыть текстовый файл, скопировать серийный номер (Cntr+C)

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

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

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

рис.2 Генератор серийных номеров

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

рис.3 Генератор серийных номеров с ключом

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

Последовательность действий:

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

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

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

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

Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.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 Генератор после вставления "Request code"

После этого в программе на рис.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. Нажать готово

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

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

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

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

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

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

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

Последовательность действий:

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

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

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

Последовательность действий:

  1. Устанавливаем программу
  2. Узнаем полную версию программы. (Например, Daemon Tools Lite 4.35.6)
    Чаще всего в названии установочного файла присутствует полное название. Если программа уже установлена, то в пункте меню «Справка» есть строка «О программе». Там можно тоже узнать полную версию программы. Если не получилось найти полное название, вводите в поиск неполное.
  3. Если при установке или после требует серийный номер, то в поиске, например yandex.ru, вводим: серийный номер для «полное название программы» Если требуются другие виды регистрации, то в строке поиска, например yandex.ru, вводим: crack для «полное название программы»
  4. Перебираем всевозможные ссылки до тех пор, пока не скачаем подходящее лекарство или серийный номер
  5. автор статьи
  6. 2011 Игорь Баянчиков

Оригинал записи и комментарии на

KeyGen - наверное самая распространенная программа на дисках Optimum 2006 , однако для ее использования нет Help"a. Конечно, эта утилита очень проста, но на всякий случай рекомендую прочитать памятку по ее использованию, а за одно и правильной активации с использованием серийного номера и генерируемого инсталляционного кода:

  1. Начните установку нужной вам программы. При запросе серийного номера запустить файл keygen.exe из директории Crack . Если требуется - указываем желаемое имя пользователя программы и/или страну (например: RU). Затем генерируем серийный номер .
  2. Полученный серийный номер нужно ввести в поле Серийный номер в программе и продолжить установку не закрывая генератор ключа .
  3. После установки запустите программу и выберите Активировать программу сейчас, затем по факсу или телефону (любой вариант кроме on-line соединения с их сервером). В интернет выходить НЕ надо ни в коем случае. В дальнейшем в настройках программы желательно отключить проверку "наличия обновлений".
  4. На основе введенного вами серийного номера и неких параметров компьютера программа сформирует инсталляционный ID для отправки "по телефону или факсу". Введите полученный инсталляционный ID в генератор, и нажмите Generate . Полученный Activation Code введите в поле Активационный код в программе.

    Важно : при генерации кода активации в должен быть указан все тот же серийный номер. Если по каким-либо причинам keygen пришлось закрыть во время установки, то скопируйте серийный номер обратно в нужное поле, добавьте инсталляционный ID и сгенерируйте код активации .

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

Журналы по радиоэлектронике за 2006 год - полный DVD-диск с обновлениями (номерами журналов за прошлый год). Как всегда - без предоплаты, но зато с подарками для постоянных заказчиков! Компакт-диск с "Большим справочником рабиолюбителя 2006" -

$ Disclamer:
Все материалы на этих дисках предоставляются бесплатно. Вы платите только за работу по формированию и запись дисков, расходные материалы, упаковку и услуги почтовой доставки. Владельцы этого сайта - частные лица. Мы не занимаемся коммерческой деятельностью и уважаем Авторские права... Заказывая наши диски вы обязуетесь использовать их содержимое только для ознакомления и тестирования (в соответствии с Законом "О правах Потребителя") и в установленный срок приобрести легальные копии программ... Использование нелицензионного програмного обеспечения в корыстных целях - ЗАПРЕЩЕНО и преследуется по закону!

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

    Требуемые знания
    Советую изучить до

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

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

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

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

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

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

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

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


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


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

Последовательность действий:

  • Открыть текстовый файл, скопировать серийный номер (Cntr+C)
  • 3. Как пользоваться keygen

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

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



    рис.2 Генератор серийных номеров

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


    рис.3 Генератор серийных номеров с ключом

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

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

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

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


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

    Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.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 Генератор после вставления "Request code"

    После этого в программе на рис.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. Нажать готово

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

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


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


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


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

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

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

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

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

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

      Последовательность действий:
    1. Устанавливаем программу
    2. Узнаем полную версию программы. (Например, Daemon Tools Lite 4.35.6)
      Чаще всего в названии установочного файла присутствует полное название. Если программа уже установлена, то в пункте меню «Справка» есть строка «О программе». Там можно тоже узнать полную версию программы. Если не получилось найти полное название, вводите в поиск неполное.
    3. Если при установке или после требует серийный номер, то в поиске, например yandex.ru, вводим: серийный номер для «полное название программы» Если требуются другие виды регистрации, то в строке поиска, например yandex.ru, вводим: crack для «полное название программы»
    4. Перебираем всевозможные ссылки до тех пор, пока не скачаем подходящее лекарство или серийный номер

    Заключение

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


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


    Если вы нашли ошибку в тексте, то выделите текст и нажмите Cntr+Enter.


    По любым вопросам по данной статье пишите в комментариях. Также если вам понравилась статья, напишите это в комментариях.

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

    Первый способ, который придумали разработчики для защиты своих программ от несанкционированного копирования, было использование регистрационного ключа. Регистрационный ключ представляет собой набор цифр и букв длиной от 10 до 30 символов. Он необходим для того, чтобы подтвердить уникальность устанавливаемой копии программы. Чаще всего регистрационный ключ писался на упаковке или же в руководстве по устанавливаемой программе.

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

    Регистрационные ключи генерировались по определенному алгоритму. В подробности этого алгоритма я входить не буду. Во-первых, таких алгоритмов много, а во-вторых, они достаточно сложные. Для тех, кто заинтересуется и пожелает овладеть этими «тайными знаниями», скажу «волшебное слово», по которому можно отыскать в Интернете подробности. Это слово – «хеширование» (или «хэширование») которое по-английски пишется «hashing». Алгоритм хеширование позволяет преобразовать некоторый массив данных в строку, состоящую из символов, имеющую другой, как правило, меньший, размер. Таким образом, регистрационный номер несет в себе много информации о программе, включая номер версии. Поэтому, например, регистрационные ключи для ранних версий программы не подходили для ее более поздних версий.

    Первый вариант обхода регистрационного ключа был очевиден: попросить верный ключ у кого-нибудь, кто уже купил эту программу. Надо сказать, что знакомые почти никогда не отказывали в этой «благородной» просьбе: помочь украсть программное обеспечение. К тому же в Интернете было довольно много добрых душ, которые помещали в открытый доступ регистрационные ключи популярных программ, а иногда даже заводили для этой цели специальные базы данных.

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

    Второй вариант обхода регистрационного ключа состоял в том, чтобы узнать алгоритм проверки регистрационного ключа и написать программу, которая генерировала бы символьные последовательности, проходящие эту проверку. Делается это с помощью «обратной инженерии» (или по-английски, «reverse engineering»). Это еще одно «волшебное слово» для тех, кто желает поподробнее ознакомиться с этим полукриминальным ремеслом.

    Как происходит обратная инженерия? Чаще всего с помощью программы-дизассемблера программист генерирует код «взламываемой» программы в виде текста на машинном языке, ассемблере. Просмотрев такой текст, можно обнаружить функцию, ответственную за подтверждение подлинности регистрационного ключа. А разобравшись, как эта функция работает, можно написать свою программу, которая будет выдавать последовательности регистрационных ключей, расцениваемых проверяющей программой, как правильные. Подобные маленькие программы называются генераторами ключей или по-английски «key generator». Чаще всего генераторы ключей называют сокращенно, «keygen». По-русски это слово произносится и как «киджин», и как «кейген», и как «киген».

    Лет пятнадцать-двадцать назад генераторы ключей были очень популярны. Сейчас их популярность постепенно сходит на нет. В чем причина?

    Во-первых, создатели программ придумали более хитрые приемы защиты. Кроме усложнения проверочных функций и маскировки их положения в программе установки, многие фирмы, особенно крупные, стали требовать подтверждения регистрации в своих региональных отделениях. Теперь только после подтверждения, чаще всего по телефону, Вы получаете ключ, который «откроет» программу установки. Это похоже на отель, в котором дверь Вам открывает портье, знающий, зарегистрированы ли Вы именно в этом отеле..

    Во-вторых, с развитием Интернета проверочные модули программ стали напрямую связываться с фирменным сервером, на котором ведется база данных зарегистрированных программ и автоматически регистрироваться на этом сервере. Такую автоматическую регистрацию через Сеть подделать стало труднее. По крайней мере, генераторы ключей здесь бесполезны. Подобным образом происходит регистрация Windows, начиная с версии 7. Поэтому «выцарапывать» из Интернета «взломанную» версию этой операционной системы не стоит. Только проблемы наживете. Тем более, наконец, Windows и стоить стали не бешеные деньги. В настоящее время Windows 7 вполне стоит тех денег, которые Вы за нее платите, освобождая простого пользователя от массы забот с операционной системой. Наконец-то Вы можете думать о работе, а не о системных проблемах!

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

    И, наконец, в-четвертых, оказалось, что для продуктивной работы с компьютером не нужно много программ. И, в дополнение к этому, многие профессиональные программы получили достойные бесплатные аналоги. Например, вместо дорогого Adobe Photoshop можно использовать бесплатный графический редактор GIMP практически с теми же возможностями. Для просмотра Интернета есть несколько бесплатных прекрасных браузеров, а пакет программ Open Office работает ничуть не хуже Microsoft Office. Так что быть честным вполне стоит.

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

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

    Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector , декомпилятор программ под.NET

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


    Для начала краткий ликбез по структуре.NET программы, для тех кто не знаком с разработкой под данный Framework: весь код, написанный на любом.NET языке (C#, Visual Basic, F#, Delphi.NET) компилируется в особый Intermediate Language, называемый обычно IL или MSIL . Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями. И это, в принципе, такой же равноправный язык как и C#, только синтаксис похуже (а возможности больше). Кроме того, в программе на.NET активно используются метаданные, т.е. вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле.
    Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector"а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.

    Перейдём, собственно, к взлому.

    0. Обнуление триала

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

    Посмотрим на нашего подопытного рефлектором:
    Немного погуляв по коду, находим интересную строчку в конструкторе MainForm


    Открываем редактор реестра, идём в HKEY_CURRENT_USER\Software\Ultrapico\Expresso и видим следующие ключи:


    Удаляем их и получаем ещё 60 дней работы.

    Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее - потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.

    Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.

    1. Написание keygen"а

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

    Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:

    При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.


    Данный хеш использует DES и всякие префиксы


    Байты конвертятся в строку с помощью данного метода.

    Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.

    В результате генерируем ключ на любое имя и видим:


    Бинго!

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

    2. Использование враппера

    Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок - валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:
    1. Указать программе, что лицензия уже проверена
    2. Указать программе, что лицензия корректна
    Как это сделать? Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия:


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

    Воспользуемся этим:
    Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:


    Смотрим, что получилось:


    Ну кто бы сомневался.

    В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.

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

    Но все эти защиты приведут к тому, что злоумышленник будет использовать

    3. Физический взлом программы

    Тут уже всё серьёзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно (помните, я писал, что MSIL это такой же язык как и C#?). Для декомпиляции нам понадобится утилита из SDK под названием ildasm , а для компиляции компилятор из.NET Framework ilasm .

    Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в.il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):

    Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).

    Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
    Чтобы было понятнее, так это выглядит в рефлекторе, в C#

    Т.е. вполне очевидно, что теперь всё будет хорошо:

    Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
    При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами - 4 симпатичных строчки (на C# меньше, но некрасиво).

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

    Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.

    Заключение

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