07.02.2015 Views

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

00407D93 Ovde EAX dobija sledecu vrednost EAX = EAX + (EAX * 4), ovo je<br />

prosto i lako procitati samo treba obratiti paznju na matematicke operacije<br />

mnozenja.<br />

00407D96 Opet operacija obicnog matematickog dodavanja 400h = 1024 na<br />

vrednost EAXa.<br />

Sve do kraja nam je totalno nebitno jer kako vidimo samo se vrednost iz<br />

EAXa samo prebacuje iz brojeva u string i dodaje na novi prazan string. U<br />

sledecim prolazima desava se isto to samo se stringovi dodaju jedan na<br />

drugi, to jest vrednosti iz svakog prolaza se kao tekst dodaju jedna na drugu.<br />

Kao sto vidimo prve cetiri cifre serijskog broja su uvek iste jer se racunaju<br />

uvek za isto slovo, to jest za nulu. Ako izracunamo ovo videcemo da su prve<br />

cetiri cifre uvek 1464. Svaki sledeci prolaz se razlikuje samo u podatku koji<br />

se nalazi u ALu na adresi 00407D86, a on je uvek jednak ASCII kodu slova<br />

koje odgovara prolazu kroz petlju. Ako je u pitanju prolaz jedan, AL ce dobiti<br />

vrednost ASCII broja prvog slova iz unetog imena, i tako dalje za svako<br />

slovo. Nadam se da vam je ovo jasno i da nisam previse zakomplikovao ovo<br />

tumacenje koda. Keygenovanje samo po sebi nije jednostavno i zahteva<br />

mnogo vezbanja i iskustva, zato ne ocajavajte ako vam sve nije iz prve<br />

jasno. Trik kod pravljenja dobrih keygenova je razumevanje svakog reda<br />

vezanog za racunanje serijskog broja i njegovo rekreiranje u nekom<br />

programskom jeziku. Evo kako bi to izgledalo napisano u Visual Basicu.<br />

Private Sub Command1_Click()<br />

User_name = Text1.Text<br />

Serial = “1464”<br />

For i = 1 to Len(user_name)<br />

Al = Asc(Mid$(user_name,i,1))<br />

Al = Al xor 44<br />

Al = Al + Al<br />

Al = Al + (Al * 4)<br />

Al = Al + 1024<br />

Serial = Serial & Al<br />

Next i<br />

Text2.Text = Serial<br />

End Sub<br />

Ovaj primer se nalazi vec gotov u folderu …\Casovi\Cas4\Keygen source\VB\<br />

A evo kako bi to izgledalo napisano u Delphiju.<br />

procedure TForm1.Button1Click(Sender: TObject);<br />

var<br />

user_name,serial:string;<br />

al,i:integer;<br />

begin<br />

serial := '1464';<br />

user_name := Edit1.Text;<br />

for i := 1 to Length(user_name) do begin<br />

al := Ord(user_name[i]);<br />

al := al xor 44;<br />

al := al + al;<br />

al := al + (al *4);<br />

al := al + 1024;<br />

serial := serial + IntToStr(al);<br />

end;<br />

Edit2.Text := serial;<br />

end;<br />

Ovaj primer se nalazi vec gotov u folderu …\Casovi\Cas4\Keygen source\Delphi\<br />

<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 103 <strong>of</strong> 293

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!