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

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

Ранг: 4.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2007 06:38
· Личное сообщение · #1

Вообще я фан бит хака, но вот решил написать кейген на Паскале причём так чтоб не разбиратся в принципе создания кода из имени. Взял я FaNt0m's CrackMe #4 нашёл там место где из AL берётся буква имени, а на выходе в AL передаётся буковка из серийника и накатал такое в паскале. В прошраммировании с асм вставок я не силён. Поможете?
{$G+}
uses crt;
var name,serial:string;
i,NAMEh,SERIALh:byte;
code:integer;
begin
write('Enter name:');readln(name);
for i:=1 to length(name) do
begin
val(name[i], nameh, code);
asm
MOV AL,nameh
ADD AL,CL
XOR AL,CL
DIV BL
SHR AX,8
ADD AL,41
MOV serialh,AL
end;
serial[i]:=chr(NAMEh);
end;
writeln(serial);
readkey;
end.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 18 февраля 2007 07:08
· Личное сообщение · #2

Negor пишет:
В прошраммировании с асм вставок я не силён.

хорошая очепятка ;)
собсно вопрос в чём? как использовать асм в паскале?

-----
EnJoy!




Ранг: 4.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2007 07:15
· Личное сообщение · #3

Проблема в после запуска ввожу MyName а в строке xor al,cl выскакивает division by zero... вот а так навскидку код прально оформлен?



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

Создано: 18 февраля 2007 08:04 · Поправил: Veliant
· Личное сообщение · #4

Сразу после asm напиши xor dx,dx т.к. после деления остаток туда попадает, и если там не ноль то
И кстати все равно будет ошибка))




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 18 февраля 2007 08:19
· Личное сообщение · #5

Negor пишет:
asm
MOV AL,nameh
ADD AL,CL
XOR AL,CL
DIV BL
SHR AX,8
ADD AL,41
MOV serialh,AL
end;

А с какого перепуга в BL не должно быть нуля, если ты ему ничего не присваиваешь? И CL не инициализировано...



Ранг: 4.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2007 08:25
· Личное сообщение · #6

Точна!



Ранг: 4.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2007 12:01
· Личное сообщение · #7

А-а-а-а-а-а-а)))))) Работает чёрт побери)))))
Фух... предоставлю отчёт вдруг кому прегодится.
Во-первых помогли xor AX,AX и xor BX,BX/
Во-вторых: вместо CL в строках
ADD AL,CL
XOR AL,CL
надо ставить i-1 но у меня не получилось корректно это сделать поэтому пришлось нагромождать цеую конструкцию(Листинг ниже)
ну и немного бодрихтовав вывод вот что получилось:

{$G+}
uses crt;
var name,serial:string;
i,nameh,serialh:byte;

begin
ClrScr;
write('Enter name:');readln(name);
for i:=0 to length(name)-1 do
begin
nameh:=ord(name[i+1]);
asm
XOR AX,AX
XOR BX,BX
MOV BL,1Ah
MOV AL,nameh
ADD AL,i
XOR AL,i
DIV BL
SHR AX,8h
ADD AL,41h
MOV serialh,AL
end;
write(chr(SERIALh));
end;
writeln;
readkey;
end.

Ваши коментарии...


 eXeL@B —› Вопросы новичков —› Помогите с кейгеном
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати