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.

Ovo je ocigledno poredjenje duzine unetog stringa u registryju sa nulom,<br />

odnosno ovo je provera da li smo uneli neki string u registry. Dalje tracujemo<br />

kroz kod i primecujemo ovo:<br />

0040142A |. 8D35 C4314000 LEA ESI,DWORD PTR DS:[4031C4]<br />

00401430 |. 8D3D 3D314000 LEA EDI,DWORD PTR DS:[40313D]<br />

Odnosno u ESI se smesta adresa 004031C4 na kojoj se nalazi nas Computer<br />

ID u string obliku, dok se u EDI smesta pointer ka vrednosti koja se nalazi u<br />

Registryju. Posle ove dve komande sledi jedan loop koji se koristi za<br />

poredjenje ove dve vrednosti:<br />

00401436 |> /8A06 /MOV AL,BYTE PTR DS:[ESI]<br />

00401438 |. |84C0 |TEST AL,AL<br />

0040143A |. |74 0F<br />

|JE SHORT Crackme3.0040144B<br />

0040143C |. |8A17<br />

|MOV DL,BYTE PTR DS:[EDI]<br />

0040143E |. |80F2 74<br />

|XOR DL,74<br />

00401441 |. |38C2 |CMP DL,AL<br />

00401443 |. |75 0B |JNZ SHORT Crackme3.00401450<br />

00401445 |. |46 |INC ESI<br />

00401446 |. |47 |INC EDI<br />

00401447 |. |84C0 |TEST AL,AL<br />

00401449 |.^\75 EB \JNZ SHORT Crackme3.00401436<br />

Ocigledno je da se ovde porede vrednost iz registryja i Computer ID tako sto<br />

se svako slovo/broj iz registryja XORuje sa 74h i onda poredi sa slovom<br />

Computer IDa sa istim indexom (pozicijom u stringu). Posto imamo Computer<br />

ID mozemo da izracunamo tacan serisjki broj, za moj kompjuter, tako sto<br />

cemo XORovati svako slovo Computer IDa sa 74h. Kada ovo uradimo<br />

dobijamo rezultat LL5C6C5L. Dakle vrednost koja treba da se nalazi u<br />

registryju nije 11111 nego LL5C6C5L (ovo je vrednost za moj kompjuter).<br />

Ako sada restartujemo metu u Ollyju, ispavimo sadrzaj registryja videcemo<br />

da ce AL registar biti jednak jedan na sledecoj adresi i da ce se sledeci CALL<br />

izvrsiti:<br />

00401388 . 84C0 TEST AL,AL<br />

0040138A . 74 3B<br />

JE SHORT Crackme3.004013C7<br />

0040138C . E8 1C030000 CALL Crackme3.004016AD<br />

Iz ovog razloga cemo uci u taj CALL. U njemu cemo, tracejuci, primetiti<br />

sledeci API poziv:<br />

004016C3 |. FF35 B0314000 PUSH DWORD PTR DS:[4031B0] ; |hModule = 00400000<br />

004016C9 |. E8 DA000000 CALL

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

Saved successfully!

Ooh no, something went wrong!