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.

Unpacking anything...<br />

Sta su to pakeri Pakeri su specificni programi koji se koriste u cilju<br />

zastite ili smanjenja velicine originalnih exe i dll fajlova. Ovakvi fajlovi se ne<br />

mogu direktno debugovati i / ili modifikovati. Ono sto se mora prvo uraditi da<br />

bi se moglo pristupiti klasicnom reversingu je otpakivanje. Postoji veliki broj<br />

komercijalnih, ali i besplatnih zastita i pakera tako da se nas posao dodatno<br />

komplikuje jer je potrebno znati otpakovati sve ove vrste zastita. Naravno to<br />

nije moguce uciniti jer se otpakivanje programa zasticenih ovom vrstom<br />

packera razlikuje od verzije do verzije pakera pa ce u ovoj knjizi biti opisani<br />

samo nacini otpakivanja najpopularnijih zastita koje se mogu naci na<br />

internetu.<br />

Otpakivanje svih vrsta zastita i pakera je u osnovi veoma lako i svodi<br />

se na samo tri bitna koraka:<br />

1) Ubijanje Anti-Debugging algoritama<br />

2) Pronalazenje OEPa i dumpovanje<br />

3) Popravka importa i optimizacija fajla<br />

Analiziracemo svaki od ova tri koraka:<br />

1) Prvi korak je vec detaljno objasnjen u poglavlju “Getting caught” i<br />

nema nikakve potrebe za dodatnim objasnjenjima u vezi detektovanja<br />

aktivnog debbugera.<br />

2) Sta je to OEP OEP je cesto koriscena skracenica za Original Entry<br />

Point sto je u prevodu prva linija koda koja ce se izvrsiti nakon<br />

ucitavanja fajla u memoriju. Sada shvatate zasto nam je ovo bitno.<br />

Ako je program pakovan i / ili zasticen nekom tehnikom onda ce se<br />

sve sem koda packera nalaziti kompresovano i / ili enkriptovano u<br />

fajlu. Nas cilj je da pustimo sam algoritam da se otpakuje u memoriju<br />

tako da ne krene sa izvrsavanjem zapakovanog programa, to jest da<br />

se linija koda koja se nalazi na OEPu ne izvrsi. Ovaj podatak nam je<br />

bitan jer mi pokusavamo da vratimo fajl u ono stanje kakvo je bilo pre<br />

pakovanja nekim packerom.<br />

3) Sta su to importi Importi su tablice sa tacnim adresama do svih dll<br />

fajlova koje koristi neki program. Pri mapiranju ovih dll fajlova takodje<br />

se mapiraju i sve API funkcije i ostale export funkcije koje se nalaze u<br />

njima i koje program moze da poziva prilikom svog izvrsavanja.<br />

Sada kada znamo sta su nam prioriteti prilikom svakog otpakivanja<br />

zasticenog fajla mozemo se posvetiti pojedinacnim packerima.<br />

Za identifikovanje verzije i vrste pakera koristicemo program pod imenom<br />

PeID sa kojim ste se do sada, ako ste pazljivo citali ovu knjigu, sigurno<br />

morali sresti i upoznati.<br />

Pre nego sto pocnemo sa otpakivanjem fajlova upoznacemo se sa strukturom<br />

i osnovim pojmovima PE fajlova.<br />

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

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

Saved successfully!

Ooh no, something went wrong!