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 znaci da se ovaj CALL poziva samo sa adrese 00450DED. A kada odemo<br />

na adresu 0045080C videcemo sledece:<br />

Local calls from 004509BA, 00450A13, 00450A45, 00450A67, 00450A89, 00450AAB,<br />

00450ACD, 00450AEF, 00450B11<br />

to jest da se on poziva sa vise adresa. Na svaku od ovih adresa mozemo da<br />

odemo pritiskom da desno dugme na ovoj liniji i selekcijom na koju to adresu<br />

zelimo da odemo. Ako odemo samo na neke od tih adresa bice nam jasno sta<br />

se tu desava. Otici cemo samo na adrese 00450DED i na adresu 00450B11.<br />

Na adresi 00450DED imamo:<br />

00450DC3 . 27 20 37 25 2 ASCII "' 7%%'"<br />

00450DC9 . 30 62 24 2D 3 ASCII "0b$-7,&nb#22.+!#"<br />

00450DD9 . 36 2B 2D 2C 6 ASCII "6+-,b5+..b',&l",0<br />

00450DE8 . E8 87F9FFFF CALL IsDebuggerPresent ; [IsDebuggerPresent]<br />

00450DED . E8 52FFFFFF CALL Debugger.00450D44<br />

00450DF2 . C3<br />

RET<br />

Ovaj prvi kod prikazuje poziv poruci o detektovanom debuggeru odmah posle<br />

CALLa IsDebuggerPresent APIja. Ok sada znamo da program prisustvo<br />

debuggera proverava uz pomoc API funkcije. Ovo je prvi deo provere. Drugi<br />

deo provere se nalazi na adresi 00450B11. Na toj adresi imamo ovo:<br />

00450B09 |. 50 PUSH EAX ; /Title<br />

00450B0A |. 6A 00 PUSH 0 ; |Class = 0<br />

00450B0C |. E8 0F62FBFF CALL FindWindowA ; \FindWindowA<br />

00450B11 |. E8 F6FCFFFF CALL Debugger.0045080C<br />

00450B16 |. 33C0<br />

XOR EAX,EAX<br />

odakle zakljucujemo da je druga provera FindWindowA. Resenje obe ove<br />

provere je izuzetno lako. Mozemo jednostavno staviti RET komande na<br />

adresama 00450D44, 0045080C i problem je resen. Ako zelimo da vidimo<br />

koje to prozore ovaj program trazi mozemo jednostavno postaviti breakpointe<br />

na sve CALLove ka FindWindowA APIju. Imajte na umu da se breakpointi<br />

ne postavljaju na sam CALL FindWindowA nego na PUSH EAX pre toga<br />

posto ce se tada u EAXu nalaziti naslov (title) prozora koji se trazi.<br />

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

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

Saved successfully!

Ooh no, something went wrong!