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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

KeyGen – Beginning #1<br />

Videli smo da mete mogu da se modifikuju da bi prikazale tacan<br />

serijski broj. Ali ovo nije smisao pravih keygeneratora, pravi smisao ovih<br />

programa se ogleda u rekonstrukciji algoritma koji se koristi za racunanje<br />

tacnog serijskog broja. “Meta” ce za pocetak biti veoma jednostavna. Ucitajte<br />

program …\Casovi\Cas4\AD_CM#2.exe u Olly. Ovaj prvi primer je izuzetno lak i<br />

tu je da vam pokaze osnovu keygeneratora.<br />

Otvorimo metu u Ollyju, startujte je i u nju unesite sledece podatke:<br />

ime: cracker i serial: 111111. Potrazicemo stringove koji se pojavljuju u<br />

samoj meti klikom na Search for -> All referenced text strings... i videcemo<br />

da je ovaj string jako zanimljiv:<br />

Text strings referenced in AD_CM#2:.text<br />

Address Disassembly Text string<br />

00401167 PUSH AD_CM#2.00403027 ASCII "Yeah, you did it!"<br />

Kada kliknemo dva puta na ovaj string naci cemo se ovde:<br />

00401160 |. 6A 40 PUSH 40 ;Style = MB_OK<br />

00401162 |. 68 12304000 PUSH AD_CM#2.00403012 ;Title = "<strong>Art</strong>urDents CrackMe#2"<br />

00401167 |. 68 27304000 PUSH AD_CM#2.00403027 ;Text = "Yeah, you did it!"<br />

0040116C |. FF75 08<br />

PUSH DWORD PTR SS:[EBP+8];hOwner<br />

0040116F |. E8 1C000000 CALL ;MessageBoxA<br />

Posto se ovde prikazuje poruka o tacnom serijskom broju ovo znaci da se<br />

negde iznad poredi i racuna serijski broj. Ovo se desava bas ovde:<br />

00401154 |> /8A10 /MOV DL,BYTE PTR DS:[EAX]<br />

00401156 |. |2AD1 |SUB DL,CL<br />

00401158 |. |3813 |CMP BYTE PTR DS:[EBX],DL<br />

0040115A |. |75 18<br />

|JNZ SHORT AD_CM#2.00401174<br />

0040115C |. |40<br />

|INC EAX<br />

0040115D |. |43<br />

|INC EBX<br />

0040115E |.^\E2 F4<br />

\LOOPD SHORT AD_CM#2.00401154<br />

Da bismo shvatili kako se racuna serijski broj stavicemo jedan break-point na<br />

adresu 00401154 i ponovo cemo u meti pritisnuti dugme “Check it ba<strong>by</strong>!”.<br />

Posle ovoga ce program normalno zastati na nasem break-pointu. Sada sledi<br />

najbitniji deo kod pravljenja keygeneratora. Sledi pazljiv pregled koda koji se<br />

izvrsava i nadgledanje sadrzaja registara kako bismo videli kako to uneto ime<br />

utice na racunanje serijskog broja. Videcemo da se u registrima nalaze<br />

sledece vrednosti:<br />

EAX 00403080 ASCII "cracker"<br />

ECX 00000007<br />

EDX 00140608<br />

EBX 00403280 ASCII "111111"<br />

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

Saved successfully!

Ooh no, something went wrong!