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.

Dakle na adresi 00401253 se poziva t.j. kreira tajmer sa IDom 1 i vremenom<br />

ponavljanja od 10000 ms odnosno 10 sekundi. Ako analiziramo malo ovaj<br />

deo koda primeticemo da posto se kreira tajmer, izvrsava se neki JMP skok<br />

koji preskace par API funkcija (GetDlgItem, EnableWindow, EndDialog).<br />

Primeticemo da se i iznad API funkcije za kreiranje tajmera nalazi par<br />

kondicionih JE skokova i je jedan nekondicioni JMP skok. Mozemo da<br />

postavimo break-pointe na njih i da startujemo program sa F9 kada dodje do<br />

njih. Tada cemo primetiti da se tajmer kreira samo jednom a da se ostali<br />

skokovi ne izvrsavaju dok ne prodje 10 sekundi, kada se izvrsava skok na<br />

adresi 0040123E koji vodi do adrese 0040125A koja prvo vraca handle<br />

(adresu kontrole koja se trazi u memoriji) neke kontrole uz pomoc GetDlgItem<br />

API da bi se toj istoj kontroli poslala komanda Enable = True preko APIja<br />

EnableWindow. Izgleda da se API EnableWindow koristi za ukljucivanje<br />

iskljucenih dugmadi, menija i sl. I posle malo mucenja pronasli smo API<br />

funkciju koja se koristi za ukljucivanje dugmica. Ona glasi ovako:<br />

EnableWindow(hwnd,1)<br />

gde umesto hwnd ide handle dugmeta ili nekog drugog objekta u prozoru a<br />

umesto 1 ide 1 za ukljucivanje i 0 za iskljucivanje. Hwnd dugmeta mozemo<br />

dobiti pomocu druge API funkcije GetDlgItem koja se poziva ovako:<br />

GetDlgItem(hwnd,ControlID)<br />

gde je hwnd handle prozora u kojem se nalazi dugme a control ID je Id koji<br />

smo dodelili nasem dugmetu u .res fajlu, u ovom slucaju ControlID je 1 jer je<br />

tako Daten (autor programa) deklarisao ID u .res fajlu. Naravno ako ste za<br />

razliku od mene procitali Micros<strong>of</strong>t-ove API reference ovo ste znali i bez<br />

primene reversnog inzenjeringa. Ja sam ovo morao da naucim na malo tezi<br />

nacin :)<br />

Nacin 2:<br />

Ovo je malo tezi (ili malo laksi) nacin od prethodnog i ja sam ga prvobitno<br />

upotrebio da pronadjem API koji nam treba. Otvorio sam ovaj crackme<br />

pomocu ResHackera da pronadjem ID (jedinstveni identifikacioni broj) pomocu<br />

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

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

Saved successfully!

Ooh no, something went wrong!