Как пользоваться программой keygen

Keygen (key generator) – это небольшая программа, генерирующая криптографические ключи и нужна для активации программы. Скачиваете Keygen для вашей программы, вводите в нее данные, которые просит ввести программа, в ответ Keygen выдает код, который надо вставить в поле активации программы и нажать “Активировать”. Ответить

Keygen для начинающих

Этот крякмис является очередным из серии
заданий для новичков проекта Cracking 4 Newbies — IRC (EFNet)
at #cracking4newbies. Задание таково: объяснить, как
генерируется серийный номер и написать
кейген.

Итак, рассмотрим этот простой кpякмис,
сделанный специально для начинающих.
Запустим его и посмотрим: программа просит
ввести Имя/Name и Код/Registration. Введем что-либо,
например cr0AKer и 99999999 и нажмем ОК. Wrong number —
говорит нам она. То есть «неправильно
набран номер» Жмем снова ОК, и мы снова в

Как пользоваться кейгеном стим ключей, абсолютно легально!!!!!


стартовой позиции.
Ладно, запустим SoftIce (Ctrl-D) и поставим бpяк:

Почему этот? Ну, просто потому, что getwindowtexta
не срабатывает Жмем ‘Ok’ снова и выпадаем в
отладчик, F12 для выхода в вызывающую
процедуру:
.
.
0040107B push 32h ; max длина имени 49 символов:
0040107D push edx ; 31h+1
0040107E push 3E8h
00401083 push ebx

Вот как pаз наша пpоцедypа:

>00401084 call ds:GetDlgItemTextA ; Считываем имя

А попадаем мы вот сюда:

>0040108A test eax, eax ; Проверяем, введено ли хоть
что-то.
0040108C jnz short loc_4010AA ; Введено
0040108E push eax

Если бы мы не ввели имя, то перешли бы на
нижеследующий код, где y нас спросили бы, а
есть ли y нас, вообще, имя-то? ;))

0040108F push offset aNoName ; «No name!»
00401094 push offset aDonTYouHaveANa ; «Don’t you have a name?!»
00401099 push ebx
0040109A call ds:MessageBoxA

Поскольку имя введено, то мы переходим на
следующий участок кода:
004010AA loc_4010AA: ; CODE XREF: sub_401000+8Cj

>004010AA xor esi, esi ; esi=0
004010AC push edi
004010AD xor edx, edx ; edi=0

Здесь производится суммирование hex —
значений символов имени и вычисляется его
длина:

004010AF Name: ; CODE XREF: sub_401000+C6j

004010AF movsx eax, byte ptr [ebp+edx-40h] ; символ имени
004010B4 add esi, eax ; суммируем символы имени
004010B6 lea edi, [ebp+var_40] ; edi=offset ‘cr0AKer’
004010B9 or ecx, 0FFFFFFFFh
004010BC xor eax, eax
004010BE inc edx ; N символов
004010BF repne scasb ; ищем конец строки ‘cr0AKer’
004010C1 not ecx
004010C3 dec ecx ; N символов
004010C4 cmp edx, ecx ; Все ли символы?
004010C6 jbe short Name ; Не все
004010C8 mov [ebp+arg_0], esi ; Сохраним сумму

В нашем случае сумма равна esi=268h

Как крякнуть практически любую программу (обзор Avenger)

Далее производится операция сдвига над
посчитанной суммой:

004010CB shl [ebp+arg_0], 7 ;

В нашем случае получим shl 268h, 7h = 13400h

Теперь производится считывание введенного
нами кода:

004010CF lea ecx, [ebp+var_C] ; подготовка к
004010D2 push 0Ah ; считыванию
004010D4 push ecx ; введенного
004010D5 push 3E9h ; кода (max= 0Ah — 1 символов)
004010DA push ebx
004010DB call ds:GetDlgItemTextA ; считываем
004010E1 test eax, eax ; Есть код?
004010E3 pop edi
004010E4 jnz short loc_401102 ; Есть

Читайте также:
Узнать свой фпс программа

Если бы программа не обнаружила бы
введенный код, то она бы перешла на
следующий участок кода и сказала бы все, что
она дyмает.

004010E6 push eax
004010E7 push offset aNoSerial ; «No serial!»
004010EC push offset aNoSerialNumber ; «No serial number entered!»
004010F1 push ebx
004010F2 call ds:MessageBoxA

Но поскольку мы, не будь дураки, ввели код,
то нас препроводят в другое место, а именно
сюда:

00401102 loc_401102: ; CODE XREF: sub_401000+E4j

Что же мы здесь видим? А видим мы следующее:
наш введенный код преобразовывается при
помощи стандартной С’шной функции _atoi
(ASCII—>int) в целое число, которое
возвращается в eax:

00401102 lea edx, [ebp+var_C] ; edx=offset ‘99999999’
00401105 push edx
00401106 call _atoi ; ‘Code’ ASCII —> int

В eax сейчас преобразованный код, который в
нашем случае равен 05F5E0FFh.

А далее мы подходим к финальной части —
сравнению. Hо сначала еще надо подготовить
одно из сравниваемых значений:

Берется значение, полученное после
операции сдвига над суммой hex-значений
символов нашего имени и складывается с
самой суммой, которое y нас до сих пор
хранится в esi. Во как.

0040110B mov ecx, [ebp+arg_0] ; преобразованное ‘cr0AKer’
0040110E add esp, 4
00401111 add ecx, esi ; складываем

В нашем случае оно будет равно ecx = 13668h

Вот и все! Теперь сравниваем и видим, что,
естественно, значения не совпадают

00401113 cmp ecx, eax ; Сравнение
00401115 push 0
00401117 jnz short loc_401134 ; Если равно, то Ок!
00401119 push offset aGood ; «Good!»
0040111E push offset aCongratulation ; «Congratulations!!»
00401123 push ebx
00401124 call ds:MessageBoxA

В нашем слyчае 13668h, конечно, не равно 05F5E0FFh.

Итак, приступим к решению. Что мы знаем?

Что из символов введенного имени
высчитывается определенное число, которое
равно результату сдвига влево hex-сyммы
каждого hex-значения символа нашего имени.
Что это определенное число должно быть
равно значению, полученному путем
преобразования введенного кода из ASCII-стpоки
в целое.

Вот и все! Все, что нам нужно — это взять
наше имя, произвести над ним операцию,
описанную в пункте 1) и преобразовать его из
_целого_в_ASCII_. Таким образом мы и получим код,
соответствующий нашему имени. В общем, на
нормальном языке это называется pевеpснyть
(от слова reverse) алгоритм.

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

Читайте также:
Программа не поддерживает юникод

FIDO echo Ru.hacker.Dummy и всем ее обитателям
Всем хакерам в мире

Источник: xakep.ru

eponim2008

Key Gen

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

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

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

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

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

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

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

Читайте также:
Программа для обновления гармин

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

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

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

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

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

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

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

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

topauthor

Опубликовано на сайте Топавтор

Полезные ссылки:

  1. Keygen в Википедии

Источник: eponim2008.livejournal.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru