PDA

Просмотр полной версии : Пишем кейген для DateX 1.0 на Delphi


Solide Snake
01.07.2007, 16:46
Итак, в сети я не видел туториалов на DateX 1.0, но кейген найти можно без особых проблем. Но давайте напишем его сами:)

Я не буду описывать то, как найти адрес 4AC712, который является адресом начала генерации сернама. Смотрите, по адресу 4aC717 в еах заносится ваш сгенерированный сернам, а дальше идут вычисления:

016F:004AC712 MOV [004B567C],EAX <-в 4b567c наш сернам
016F:004AC717 MOV EAX,[004B567C] <-в еах сернам
016F:004AC71C ADD EAX,BYTE +05 <-eax=eax+5
016F:004AC71F IMUL EAX,EAX,08088405 <-множим на 8088405h
016F:004AC725 INC EAX <-eax+1
016F:004AC726 MOV ECX,3B9ACA00 <-ecx=3b9aca00h
016F:004AC72B CDQ <-cdq
016F:004AC72C IDIV ECX <-делим ecx
016F:004AC72E MOV EAX,EDX <-eax=edx
016F:004AC730 CDQ <-cdq
016F:004AC731 XOR EAX,EDX <-ксорим eax и edx
016F:004AC733 SUB EAX,EDX <-eax=eax-edx
016F:004AC735 MOV [004B5680],EAX <-записываем наш РН!

Как видете вычисления не особо сложные. Далее...

Пишем кейген без VCL...но не на WinAPI, а на KOL. Рабочий кейген у меня на KOL 28,5 Кб без сжатия. Со сжатием UPX 1.24 - 16,5 Кб.
Вот сам кейген:

procedure TForm1.EditBox1Change(Sender: PObj);
var sn,res:cardinal;
p:cardinal;
begin
sn:=str2int(editbox1.text);
p:=$3B9ACA00;
asm
mov eax, sn
add eax,5
imul eax,eax, $8088405
inc eax
mov ecx, p
cdq
idiv ecx
mov eax,edx
cdq
xor eax,edx
sub eax,edx
mov res,eax
end;
editbox2.Text:=int2str(res);

end;

Я не стал всё это переводить в паскаль, и оставил всё в ассемблере. Как мы видим, в еах засовываем сернам, а на выходе в res из еах. Попробуйте это на VCL, разницы в результате никакой.

ahteam.org (c)

ProTeuS
03.07.2007, 04:05
топику в разделе реверсинга место...

Moder: ok, топик перенесён в реверсинг.