Взлом и написание кейгена ( Melody v1.52) — HackZona.Ru

Взлом и написание кейгена ( Melody v1.52)

Взлом и написание кейгена ( Melody v1.52)

Тип статьи:
Со старой ХакЗоны.
Привет, сегодня я тебе расскажу как взломать программу и написать к ней кейген. Это мой первый опыт написания кейгена для программы, по этому прошу не обижать 8). После долгих поисков программы которая мне по зубам, я нашел программку Melody и сегодня мы будем взламывать именно ее! Скачать ее ты можешь по ссылке www.lighttek.com/melody.htm. Из инструментов мы сегодня будем использовать только Delphi ( для написания кейгена) и OllyDBG.

Осмотр пациента…

Melody 1.52 — Melody is a simple audio player. The program supports WAV, MP3, MIDI, MOD, IT, XM, S3, ME, MPP, MDZ formats and audio CD disks.
2 mouse buttons are used for navigation:
One left click opens a disk or folder, and starts playing. Clicking the right button in any place takes you up one level in the folder tree. Это про нее говорит автор 8) Если ты не знаешь англ. то в кратце перевожу, эта программа для проигрывания WAV, MP3, MIDI, MOD, IT, XM, S3, ME, MPP, MDZ и аудио СD. Давай пощелкаем по всяким кнопочкам в этой программе, дощелкались до «Register your copy now !». Программа открывает новое окошко «Registration»
Теперь ты можешь поступить двумя способами… или нажать «Online Registration» заплатить за программу и пользоватся ей, ну или прочесть статью до конца и написать кейген 8). Как ты видишь в новом окне просят ввести логин и паоль… их у нас нет, но скоро появятся (достаточно знать одну пару логина/пароля что бы зарегестрировать эту программу на любом кол-ве компьютеров ...)

Пишем кейген ...
Кейген будет написан в Delphi, но будут использоватся ассемблерные вставки… Грузим нашу программу в OllyDBG и переходим на адрес 0044735D и смотрим весь код до адреса 00447380. Именно в нем и происходит генерация пароля.

MOV EDX,1; EDX = 1
MOV ECX,DWORD PTR SS:[EBP-8]; В ECX помещаем имя из переменной
MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]; ECX hex = значению буквы имени
ADD ESI,ECX; ESI + ECX почти пароль 8)

INC EDX
DEC EAX; EAX — 1
JNZ SHORT melody.00447362; переход если флаг нуля не установлен
MOV DWORD PTR SS:[EBP-14],ESI; Результат копируется в переменную
FILD DWORD PTR SS:[EBP-14]
CALL melody.004029C8
MOV EDX,EAX
SHL EAX,7; преобразовываем
ADD EAX,EDX; EAX + EDX = пароль

Так же в этой программе для генерация пароля каждому символу присваевается свое цифровое значение. Если в логине используются два символа, то пароль выглядит следующим образом: Символ1 + Символ2 = пароль, если три то: Символ1 + Символ2 + Символ3 = пароль и т.д.Например для логина ABC пароль будет 25542 (8385+8514+8643) и для CBA пароль 25542 (от перестановки мест слагаемых сумма не меняется 8). Я думаю что ты теперь понял как генерируется пароль в этой программе. Теперь мы начнем писать кейген, как я уже говорил компилятором я избрал Delphi. Давай запускай ДЕльфи и создавай новый проект, теперь расположи на форме 2 Edit'a (у обоих я изменил имя, один pwd другой name ) и 1 Button (Можешь использовать любые свои компоненты, но пример я буду приводить именно на этих ). Визуальная часть нашей программы готова, теперь надо все это запрограммировать 8). Для начала давай создадим функцию генерирования кода :

function Vzlom(User:String; passwd: Integer):String;
begin
asm //ассемблерная вставка генерация пароля
XOR ESI,ESI
MOV EDX,1
MOV EAX,[passwd]

@proc1:
MOV ECX,[User]
MOVZX ECX,[ECX+EDX-1]
ADD ESI,ECX
INC EDX
DEC EAX
JNZ @proc1

MOV DWORD PTR SS:[passwd],ESI
FILD DWORD PTR SS:[passwd]

PUSH EAX
FISTP DWORD PTR SS:[ESP]
WAIT
POP EAX

MOV EDX,EAX
SHL EAX,7
ADD EAX,EDX

MOV [passwd],EAX
XOR EAX,EAX
XOR ESI,ESI //в этой вставке мы вополнили генерирования пароля для программы Melody v 1.52
end;
Result:=IntToStr(passwd); //преобразование 8)
end;

В процедуре регистрации выполняется код с помощью которого программа Melody генерирует свои пароли ( смотри его в OllyDBG начиная с адреса 0044735D и до 00447380 ) Теперь давай напишем
процедуру вывода пароля, для этого два раза щелкни по батону (Button1) и вставь в открывшемся окне такой код :

var //зададим значения
nm: String;
pass: Integer;
begin //ну поехали 8)
nm:=name.Text;
if nm''
then begin //если поле имя заполнено то вывести пароль к данному имени
pass:=LenGth(nm);
pwd.Text:=(Vzlom(nm,pass));
end
else begin //если поля имя не заполнено то отправить вводить имя!
Application.MessageBox('Введи имя','Ошибка',mb_ok)
end;

Теперь тебе осталось лишь скомпилить crack и раздавать своим друзьям 8) Если у тебя не получается написать кейген то скачай его с моего хомяка… www.ksail.fyw-team.info

ЗЫ. Эта программа взламывается и методом «замены байта» (о нем я писал в своей прошлой статье), Твое домашнее задание взломать ее этим методом!

Все вопросы и заказы слать на Ksail[at]yw-team.info ну или в ацку стучите 729-039…


Нравится
Не нравится

9 комментариев

12:20
8)
13:12
лучше ответьте на вопрос-
почему регистрацыя на этом сайте идёт с Нидерландов ???????
10:52
kwakin нашел че спросить 8) не знаю я ...
23:26
> ksai1
>kwakin нашел че спросить 8) не знаю я ...
--------------------------------
спасибо что ответил.!..))
13:15
Потому что сервак Хакзоны находится в Голландии
21:45
:-D
03:42
mne takzhe interesen etot vopros!
14:53
В нигерландах=-0
15:14
РЕСПЕКТ!