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.

PC-Guard 5.0<br />

PC-Guard je jedan veoma zanimljiv protektor. Kazem da je zanimljiv iz<br />

razloga sto je njegov autor sa naseg podneblja i zbog cinjenice da ima<br />

stvarno zanimljive opcije zastite kroz mrezu i slicno. Definitivno izvrstan<br />

protektor i prava meta za nas poduhvat! Ja sam za ovu priliku zastitio jedan<br />

moj keygenerator ovim pakerom i stavio ga u folder Cas10 a nazvao<br />

unpack.PC-Guard 5.0.exe. Jedini problem sa kojim se mozete sresti prilikom<br />

otpakivanja ovog protektora je cinjenica da je fajl zasticen trial verzijom PC-<br />

Guarda pa ce se stoga sa vremena na vreme pojavljivati NAG posle kojeg ce<br />

se program iskljuciti, takodje se aplikacija moze startovati samo 20 puta,<br />

budite obazrivi! Ako se ovo desi jednostavno u Ollyju pritisnite CTRL+F2 da<br />

biste restartovali debuggovanu aplikaciju. Iz zelje da i ovaj protektor ne bude<br />

opisan kao puka konfiguracija Ollyja resio sam da vam objasnim kako da<br />

sami konfigurisete Olly i da prepoznate Exceptione. Pocecemo pritiskom na<br />

F9 kako bi smo videli da li ce se program startovati, to jest testiramo da li<br />

ima antidebugger zastite. Ali pre nego sto se program oglasi po pitanju<br />

antidebugging zastite naisli smo na sledece:<br />

004098DE 8913 MOV DWORD PTR DS:[EBX],EDX ; unpack_P.0040998E<br />

a ako pogledamo dole u status bar Ollyja videcemo da se radi o Access<br />

violation Exceptionu. Sada cemo otici u Debugging opcije pritiskom na<br />

ALT+O i u tabu Exceptions cemo otkaciti checkbox Memory Access violation.<br />

Posle ovoga moramo da restartujemo Olly pritiskom na CTRL+F2 i da je<br />

ponovo startujemo sa F9. Posto je Olly uspesno presao preko proslog<br />

violationa zaustavio se na novom:<br />

00409C73 /EB 01<br />

JMP SHORT unpack_P.00409C76<br />

koji se zove single step event. I njega cemo dodati u prozoru Debbuging<br />

options klikom na Add last Exception i otkacinjanjem checkboxa Ignore also<br />

following custom exceptions or ranges. Ponovo sledi clik na CTRL+F2 i F9,<br />

posle cega cemo zastati na sledecem Exceptionu:<br />

77F767CE C3 RET<br />

A posto je u pitanju INT3 exception i njega cemo otkaciti u prozoru<br />

Debugging options. A posle restarta aplikacije i njenog ponovnog starta<br />

vidimo program ocigledno ima antiOlly zastitu jer se proces zavrsio pozivom<br />

ESI 77F7663E<br />

ntdll.ZwTerminateProcess<br />

Zbog ovoga cemo posle svakog restarta debuggovane aplikacije sakriti Olly<br />

pomocu HideOlly plugina. Sada cemo restartovati program, sakriti Olly i<br />

postavicemo Memory breakpoint on access na glavnu .CODE sekciju. Posle<br />

pritiska na F9 naci cemo se ovde:<br />

0041632D 281F SUB BYTE PTR DS:[EDI],BL<br />

Posto ce se program vracati ovde vise puta postavicemo obican breakpoint<br />

na JMP komandu ispod LOOPD komande, skinucemo memoriski breakpoint i<br />

pritisnucemo F9 da dodjemo do naseg obicnog breakpointa. Kada smo dosli<br />

do njega skinucemo ga pritiskom na F2 i vraticemo memorijski breakpoint na<br />

glavnu sekciju. Posle pritiska dugmeta F9 naci cemo se na pravom OEPu, koji<br />

se nalazi na adresi 00401264 (prvo ga analizirajte sa CTRL+A) gde mozemo da<br />

uradimo dump i popravimo importe pomocu ImpRECa.<br />

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

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

Saved successfully!

Ooh no, something went wrong!