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 Obsidium 1.2<br />

Iako je u knjizi objasnjeno kako se otpakuje dosta velik broj pakera u<br />

ovom nightmare delu knjige cete morati da otpakujete paker koji do sada<br />

niste imali prilike da sretnete u ovoj knjizi.<br />

Zadatak:<br />

Otpakovati fajl ...\Cas12\crackme.Obsidium12.exe tako da se u fajl PE (PEid i<br />

slicnima) identifikatorima prikaze pravo stanje a ne identifikacija pakera. Fajl<br />

posle otpakivanja ne sme prikazivati Obsidium NAG poruku i mora raditi bez<br />

izvrsavanja koda pakera Obsidium.<br />

Resenje:<br />

Iako sam ovom pakeru dao visu ocenu,<br />

tacnije dao sam mu level 4, paker je<br />

lak za otpakivanje kada se Olly lepo<br />

podesi. Podesite Olly kao na slici. I prvo<br />

cete se sresti sa NAGom Obsidiuma a<br />

posle toga cete zavrsiti na OEPu. Kao<br />

sto se vidi u samom Ollyju Obsidium je<br />

“progutao” par bajtova sa OEPa to jest<br />

oni su izvrseni negde drugde. Nas<br />

zadatak je da iskoristimo ovaj OEP sto bolje znamo i umemo:<br />

004012C0 /. 55<br />

PUSH EBP<br />

004012C1 |. 8BEC<br />

MOV EBP,ESP<br />

004012C3 |. 6A FF PUSH -1<br />

004012C5 |. 68 F8404000 PUSH crackme_.004040F8<br />

004012CA |. 68 F41D4000 PUSH crackme_.00401DF4 ; SE handler installation<br />

004012CF |. 64:A1 0000000> MOV EAX,DWORD PTR FS:[0]<br />

; Real entry point <strong>of</strong> SFX<br />

Iako ste sigurno pomislili da je Olly prilikom traceovanja progutao ove<br />

bajtove i da se zbog toga nalazimo na 004012CF umesto na 004012C0. E pa<br />

Olly nije nista progutao jer Obsidium bas ovako radi kradju bajtova: Negde<br />

se izvrsi sve sa adrese 004012C0 do 004012CF a to se ne radi ovde. Nama<br />

samo predstavlja problem to sto ako sada uradimo dump imacemo iskvarene<br />

adrese jer se deo koda vec izvrsio a dump moramo da radimo kada se ni<br />

jedna komanda pravog nepakovanog ExE fajla ne izvrsi. Ali mozda mozemo<br />

da uradimo dump ovde Pogledajmo malo bolje adrese od 004012C0 do<br />

004012CF da vidimo sta se tu desava. Nista specijalno nema nikakvih<br />

CALLova ili operacija sa registrima, imamo samo par PUSH komandi, dakle<br />

tipican VC++ OEP. Ono sto sigurno niste znali je da ako se izvrse PUSH<br />

komande njihovo stanje se snima u memoriji a to znaci da nema veze da li<br />

cemo uraditi dump ovde ili na 004012C0. Dakle uradicemo dump ovde i<br />

pokusacemo da popravimo importe sa ImpRecom. Kao sto cete sigurno<br />

primetiti ImpRec je nasao OEP i importe ali ne moze da ih identifikuje.<br />

Mozete probati i sa obsidiumIAT pluginom ali nista necete postici. Dakle<br />

Importe moramo popraviti rucno. Ovo necu ovde objasniti jer zahteva<br />

potpuno znanje API referenci i potrajalo bi dosta dugo, stoga cu vam samo<br />

dati fajl iat.txt koji sadrzi ceo IAT nepakovanog fajla. Vi samo treba da ga<br />

ucitate u ImpRec pomocu opcije Load Tree i uradite Fix dump.<br />

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

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

Saved successfully!

Ooh no, something went wrong!