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