Сейчас на форуме: _MBK_, asfa (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Нужна помощь в написании кейгена
Посл.ответ Сообщение

Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 18:38 · Поправил: MalKolm
· Личное сообщение · #1

Привет всем!!! Я новичок в крэгинге(и программировании тоже) и поэтому сейчас учусь взламывая крэкми. Битхак освоил, теперь хочется посложнее. Вот и решил попробовать написать кейген. Тренируюсь на крэкми CrueHead’а (т.е. крэкми, который описывает взлом Р. Нарваха в своем цикле статей). Генерацию пароля нашел, но никак не получается сделать кейген да Делфи. Вот привожу найденную мною процедуру:


XOR EDI, EDI ; Очистка регистров
XOR EBX, EBX
M1: MOV BL, BYTE PTR DS:[ESI] ; В ESI заносится введенное имя
TEST BL, BL
JE M2
ADD EDI, EBX
INC ESI ; Следующий символ
JMP M1
M2: XOR EDI, 5678
MOV EAX, EDI ; Копируем все наши вычисления в EAX
XOR EAX, 1234
MOV key, EAX


Помогите всё выше описанное перевести в Делфи. Заранее спасибо!
Вот крэкми на всякий случай : http://wasm.ru/pub/23/files/ollydbg01-Crackme.zip http://wasm.ru/pub/23/files/ollydbg01-Crackme.zip



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 19 марта 2009 19:06
· Личное сообщение · #2

И что тут непонятного?

XOR EDI, EDI ; Очистка регистров
XOR EBX, EBX

Как ты и сам написал - это очистка регистров

M1: MOV BL, BYTE PTR DS:[ESI] ; В ESI заносится введенное имя
TEST BL, BL
JE M2
ADD EDI, EBX
INC ESI ; Следующий символ
JMP M1

Тут к EDI прибавляются Hex-коды всех символов в имени

M2: XOR EDI, 5678
MOV EAX, EDI ; Копируем все наши вычисления в EAX
XOR EAX, 1234
MOV key, EAX

Тут полученное значение ксорится сначала на 5678, потом на 1234

Вот и переводи это на Delphi. Если не знаешь синтаксиса языка в Delphi - придется его учить



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 19:33
· Личное сообщение · #3

Что Делфи учить надо это понятно. А можете ради примера написать что да как? Ведь учить делфи тока начал и хочется сделать свой первый кейген



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 19:42 · Поправил: MalKolm
· Личное сообщение · #4

Как их ваще писать кейгены?! Вот попробывал написать:
var
nam:String;
Key:cardinal;
begin
nam:=Edit1.text;
asm
// введённое имя в name
XOR EDI, EDI
XOR EBX, EBX
M1: MOV BL, BYTE PTR DS:[nam] // по этому адресу вводится в буфертекст
TEST BL, BL
JE M2
ADD EDI, EBX
INC nam
JMP M1
M2: XOR EDI, 5678h
MOV EAX, EDI
xor eax,1234
mov key,ebx переменная для хранения верного пароля

end;
Edit2.text:=IntToStr(key); // здесь ошибка!!!
end;


Это понятно, что чушь написал. Не могли бы вы исправить? Пожалуйста!



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 19 марта 2009 20:07
· Личное сообщение · #5

Ты фигню написал.
M1: MOV BL, BYTE PTR DS:[nam] - вот тут у тебя вообще неизвестно что получится (если получится вообще).

Учи Delphi и пиши без asm-вставок




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 19 марта 2009 20:20 · Поправил: Isaev
· Личное сообщение · #6

Code:
  1. Var
  2.   Name:String;
  3.   Code,N:Word;
  4. Begin
  5.   Code:=0;
  6.   For N:=1 To Length(Name) Do
  7.     Code:=Code+Ord(Name[N]);
  8.   Code:=Code Xor 17484; // $5678 Xor $1234 = 17484;
  9. End;


-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 19 марта 2009 20:23
· Личное сообщение · #7

Isaev
Ну зачем ты так? Он же теперь только и будет халяву искать, вместо того чтобы самому научиться чему-нибудь




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 19 марта 2009 20:41 · Поправил: Isaev
· Личное сообщение · #8

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

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 21:30
· Личное сообщение · #9

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



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 22:04
· Личное сообщение · #10

А немогли бы вы пояснить откуда взялось 17484?



Ранг: 48.2 (посетитель), 49thx
Активность: 0.040
Статус: Участник

Создано: 19 марта 2009 22:34
· Личное сообщение · #11

MalKolm пишет:

А немогли бы вы пояснить откуда взялось 17484?

Исаев уже пояснил ведь:
Isaev пишет:
$5678 Xor $1234 = 17484;




Ранг: 1.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2009 22:40
· Личное сообщение · #12

MalKolm пишет:
Что Делфи учить надо это понятно. А можете ради примера написать что да как? Ведь учить делфи тока начал и хочется сделать свой первый кейген

Вопрос не в том какой язык программирования начал учить, а в том, что надо научиться понимать логику программы, очень хорошо помогает бумага и карандаш. Только не рисуй алгоритмы - просто пиши по-очереди что делал и что получил.
Очень тяжело следить за логикой программы при использовании 2-х языков программирования (т.е. asm вставок), да и компилятор Делфи может чудеса творить, ведь asm вставка это не совсем доступ к реальным регистрам процессора, а так - ещё один способ работы с переменными.

Меня тут недавно поправили, ну так и я поправлю:

MalKolm ТЕМУ ЗАКРОЙ




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 19 марта 2009 23:31 · Поправил: coderess
· Личное сообщение · #13

Удалил

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 марта 2009 15:18
· Личное сообщение · #14

Всем огромное спасибо за советы!!! Я разобралался в коде.


 eXeL@B —› Вопросы новичков —› Нужна помощь в написании кейгена
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати