The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ACProtect 1.4x<br />
ACProtect je komercijalan protektor cija je najnovija verzija datirana<br />
na 2004 godinu. U originalu ime protektora je AntiCrack protector ili kako ga<br />
PeID identifikuje UltraProtect. I jedan i drugi naziv zvuce veoma privlacno i<br />
prosto traze detaljnu analizu. Naravno ovo je izazov koji nikako ne smemo<br />
propustiti i stigo cemo otvoriti metu crackme.ACProtect.exe pomocu Ollyja. Na<br />
samom OEPu ACProtectora cemo videti sledece:<br />
00407000 > $ 60 PUSHAD<br />
00407001 . E8 01000000 CALL crackme_.00407007<br />
00407006 E9 DB E9<br />
00407007 /$ 830424 06 ADD DWORD PTR SS:[ESP],6<br />
0040700B \. C3<br />
RET<br />
Ovo je kod koji neodoljivo podseca na ASProtect, ali za razliku od ASProtecta<br />
mi cemo ovde iskoristiti stack trik kako bismo veoma brzo dosli do pravog<br />
OEPa. Dakle, kao i kod ASPacka, pritisnucemo F8 i videcemo da se ESP<br />
registar promenio zbog cega cemo ga izabrati (a i zbog cinjenice ga on pokazuje<br />
na STACK) i selektovacemo opciju Follow in Dump posle cega cemo videti<br />
sledece u Hex View prozoru:<br />
0012FFA4 FF FF FF FF 6A 16 F5 77 ....j..w<br />
0012FFAC F0 FF 12 00 C4 FF 12 00 ........<br />
Kao i kod ASPacka selektovacemo prva cetiri bajta na 0012FFA4 adresi (moze<br />
se razlikovati na vasem Windowsu) i desnim klikom cemo izabrati Breakpoint,<br />
pa Hardware on Access, pa DWORD. Sada nam ostaje da pritiskamo F9 dok<br />
se ne nadjemo u blizini OEPa. Posle prvog klika na F9 naci cemo se ovde:<br />
004070A3 . 51<br />
004070A4 . 8F05 B1784000<br />
004070AA . 60<br />
PUSH ECX<br />
POP DWORD PTR DS:[4078B1]<br />
PUSHAD<br />
Ne ovo nije OEP, pritisnucemo 2x F9 (CTRL + A) i ovde smo:<br />
004071A3 . 51<br />
004071A4 . 8F05 E9784000<br />
004071AA . 60<br />
PUSH ECX<br />
POP DWORD PTR DS:[4078E9]<br />
PUSHAD<br />
I dalje nismo na OEPu pa cemo pritisnuti F9 jos 2x i naci cemo se ovde:<br />
0040728D . 56 PUSH ESI ; ntdll.77F5166A<br />
0040728E . 8F05 7D794000 POP DWORD PTR DS:[40797D]<br />
00407294 . 60 PUSHAD<br />
Pritiskamo F9 sve dok ne dodjemo dovde:<br />
0041D6A8 EB DB EB<br />
0041D6A9 01 DB 01<br />
0041D6AA 7F DB 7F<br />
a kada i ovde pritisnemo F9 pojavljuje se ACProtect NAG. Ovo znaci da smo<br />
blizu OEPa, pa cemo posle klika OK na NAGu analizirati mesto gde se<br />
nalazimo, klikom na CTRL+A dobijamo:<br />
0041E106 . /EB 01<br />
JMP SHORT crackme_.0041E109<br />
0041E108 |E8 DB E8<br />
0041E109 >-\FF25 4BE14100 JMP NEAR DWORD PTR DS:[41E14B]<br />
0041E10F . 60<br />
PUSHAD<br />
; crackme_.004012C0<br />
Izvrsicemo JMP skok na kojem se nalazimo sa F8 jer nam sledeci skok koji<br />
vodi na 004012C0 izgleda sumnljivo (a i otpakivali smo ovaj crackme toliko puta<br />
da vec znamo da je OEP 004012C0). Posle izvrsavanja i ovog sumnljivog skoka<br />
na 004012C0 dolazimo ovde:<br />
004012C0 /. 55<br />
PUSH EBP<br />
004012C1 |. 8BEC<br />
MOV EBP,ESP<br />
004012C3 |. 6A FF PUSH -1<br />
<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 231 <strong>of</strong> 293