The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
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