13.07.2015 Views

The art of cracking - Tutoriali

The art of cracking - Tutoriali

The art of cracking - Tutoriali

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Unpacking Obsidium 1.2Iako je u knjizi objasnjeno kako se odpakuje dosta velik broj pakera uovom nightmare delu knjige cete morati da odpakujete paker koji do sadaniste imali prilike da sretnete u ovoj knjizi.Zadatak:Odpakovati fajl ...\Cas12\crackme.Obsidium12.exe tako da se u fajl PE (PEid islicnima) identifikatorima prikaze pravo stanje a ne identifikacija pakera. Fajlposle odpakivanja ne sme prikazivati Obsidium NAG poruku i mora raditi bezizvrsavanja koda pakera Obsidium.Resenje:Iako sam ovom pakeru dao visu ocenu,tacnije dao sam mu level 4, paker jelak za odpakivanje kada se Olly lepopodesi. Podesite Olly kao na slici. I prvocete se sresti sa NAGom Obsidiuma aposle toga cete zavrsiti na OEPu. Kaosto se vidi u samom Olly Obsidium je“progutao” par bajtova sa OEPa to jestoni su izvrseni negde drugde. Naszadatak je da iskoristimo ovaj OEP sto bolje znamo i umemo:004012C0 /. 55PUSH EBP004012C1 |. 8BECMOV EBP,ESP004012C3 |. 6A FF PUSH -1004012C5 |. 68 F8404000 PUSH crackme_.004040F8004012CA |. 68 F41D4000 PUSH crackme_.00401DF4 ; SE handler installation004012CF |. 64:A1 0000000> MOV EAX,DWORD PTR FS:[0] ; Real entry point <strong>of</strong> SFXIako ste sigurno pomislili da je Olly prilikom traceovanja progutao ovebajtove i da se zbog toga nalazimo na 004012CF umesto na 004012C0. E paOlly nije nista progutao jer Obsidium bas ovako radi kradju bajtova: Negdese izvrsi sve sa adrese 004012C0 do 004012CF a to se ne radi ovde. Namasamo predstavlja problem to sto ako sada uradimo dump imacemo iskvareneadrese jer se deo koda vec izvrsio a dump moramo da radimo kada se nijedna komanda pravog nepakovanog ExE fajla neizvrsi. Ali mozda mozemoda uradimo dump ovde ? Pogledajmo malo bolje adrese od 004012C0 do004012CF da vidimo sta se tu desava. Nista specijalno nema nikakvihCALLova ili operacija sa registrima, imamo samo par PUSH komandi, dakletipican VC++ OEP :) Ono sto sigurno niste znali je da ako se izvrse PUSHkomande njihovo stanje se snima u memoriji a to znaci da nema veze da licemo uraditi dump ovde ili na 004012C0. Dakle uradicemo dump ovde ipokusacemo da popravimo importe sa ImpRecom. Kao sto cete sigurnoprimetiti ImpRec je nasao OEP i importe ali ne moze da ih identifikuje.Mozete probati i sa obsidiumIAT pluginom ali nista necete postici. DakleImporte moramo popraviti rucno. Ovo necu ovde objasniti jer zahtevapodpuno znanje API referenci i potrajalo bi dosta dugo, stoga cu vam samodati fajl iat.txt koji sadrzi ceo IAT nepakovanog fajla. Vi samo treba da gaucitate u ImpRec pomocu opcije Load Tree i uradite Fix dump. E zato je ovolevel 4...<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 159 <strong>of</strong> 165

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

Saved successfully!

Ooh no, something went wrong!