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.
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