![]() |
eXeL@B —› Вопросы новичков —› Помогите с кейгеном |
Посл.ответ | Сообщение |
|
Создано: 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. ![]() |
|
Создано: 18 февраля 2007 07:08 · Личное сообщение · #2 |
|
Создано: 18 февраля 2007 07:15 · Личное сообщение · #3 |
|
Создано: 18 февраля 2007 08:04 · Поправил: Veliant · Личное сообщение · #4 |
|
Создано: 18 февраля 2007 08:19 · Личное сообщение · #5 |
|
Создано: 18 февраля 2007 08:25 · Личное сообщение · #6 |
|
Создано: 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 —› Вопросы новичков —› Помогите с кейгеном |