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.

PeCompact 1.40<br />

Sada sam 100% siguran da se pitate: “Zasto je napisao prvo kako se<br />

otpakuje PeCompact 2.22 a tek onda kako PeCompact 1.40” Naravno imam<br />

ja svoje razloge zasto je to ovako uradjeno. Jedan od glavnih razloga je taj<br />

sto je mnogo lakse otpakovati novu 2.22 verziju nego staru 1.40. Ne<br />

verujete mi Videcemo :) Meta koja je pakovana sa 1.40 verzijom<br />

PeCompacta se zove Notepad.pecompact140.exe. Pre nego sto otvorimo<br />

metu pomocu Ollyja prvo cu vam pokazati jedan jako interesantan trik sa<br />

PeIDom. Naime PeID ima jedan veoma interesantan plugin koji nam<br />

omogucava da unapred odredimo OEP mete. Dakle otvoricemo metu pomocu<br />

PeIDa koji ce nam prvo reci da je meta pakovana sa: PECompact 1.40 - 1.45<br />

-> Jeremy Collake a ako kliknemo na dugme -> koje se nalazi u donjem<br />

desnom uglu i izaberemo Plugins -> Generic OEP finder, posle cega ce PeID<br />

prikazati poruku da se OEP nalazi na adresi 004010CC. Posle ovoga mozemo<br />

da zatvorimo PeID i da ucitamo metu u OllyDBG.<br />

Pakerov OEP izgleda ovako:<br />

0040AC5E > /EB 06<br />

0040AC60 |68 CC100000<br />

0040AC65 |C3<br />

0040AC66 \9C<br />

JMP SHORT Notepad_.0040AC66<br />

PUSH 10CC<br />

RET<br />

PUSHFD<br />

Sada vidite razliku izmedju verzija. Btw da li ste primetili parametar koji ima<br />

PUSH komanda Da, da znam PUSH 10CC, to je PUSH OEP. Bez obzira na<br />

ovo, pritiskacemo F8 sve dok ne dodjemo do CALLa na adresi 0040AC68 u<br />

koji moramo da udjemo. Taj CALL izgleda bas ovako:<br />

0040AC68 E8 02000000 CALL Notepad_.0040AC6F<br />

stoga cemo pritisnuti F7 da udjemo u ovaj CALL kada dodjemo do njega, to<br />

nas vodi ovde:<br />

0040AC6F 8BC4 MOV EAX,ESP<br />

0040AC71 83C0 04 ADD EAX,4<br />

0040AC74 93 XCHG EAX,EBX<br />

0040AC75 8BE3 MOV ESP,EBX<br />

Posto se dole nalazi jedna RET komanda a izmedju nema nikakvih skokova<br />

izvrsicemo sve komande sa F8, ukljucujuci i RET komandu, posle cega smo<br />

ovde:<br />

0040D1C3 BD 53310000 MOV EBP,3153<br />

0040D1C8 57 PUSH EDI<br />

0040D1C9 5E POP ESI<br />

0040D1CA 83C6 42 ADD ESI,42<br />

0040D1CD 81C7 53110000 ADD EDI,1153<br />

0040D1D3 56 PUSH ESI<br />

dalje i nema neke velike mudrosti jednostavno drzimo F8 sve dok ne<br />

dodjemo do adrese:<br />

0040D350 57 PUSH EDI<br />

0040D351 8BBD D7A44000 MOV EDI,DWORD PTR SS:[EBP+40A4D7]<br />

0040D357 03BD A6A04000 ADD EDI,DWORD PTR SS:[EBP+40A0A6]<br />

0040D35D 8B8D DBA44000 MOV ECX,DWORD PTR SS:[EBP+40A4DB]<br />

malo ispod toga imamo dosta loopova koji se izvrsavaju dosta puta, ti<br />

loopovi izgledaju ovako:<br />

0040D36E /74 72<br />

0040D370 |78 70<br />

0040D372 |66:8B07<br />

0040D375 |2C E8<br />

0040D377 |3C 01<br />

JE SHORT Notepad_.0040D3E2<br />

JS SHORT Notepad_.0040D3E2<br />

MOV AX,WORD PTR DS:[EDI]<br />

SUB AL,0E8<br />

CMP AL,1<br />

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

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

Saved successfully!

Ooh no, something went wrong!