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

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

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

UPX Protector 1.0x<br />

Jos jedna u seriji modifikacija UPX kompresora. Meta koju cemo<br />

otpakivati je NFO builder a nalazi se ovde ...\Cas10\NFO-Builder.2000.rar kao<br />

sto vidite ovo je izuzetno koristan NFO editor stoga spajamo lepo i korisno.<br />

Mislim da mi momci iz FMWa nece zameriti sto se sluzim njihovom<br />

aplikacijom da objasnim otpakivanje UPX Protectora.<br />

Otvorite metu pomocu Ollyja i pogledajte sta se nalazi na OEPu. Kao<br />

sto primecujute OEP je malo neobican:<br />

0044E91E . FF00<br />

0044E920 > 60<br />

0044E921 . BE 00204300<br />

0044E926 . 8DBE 00F0FCFF<br />

0044E92C . 57<br />

0044E92D . 83CD FF<br />

0044E930 . EB 10<br />

0044E932 > $^ EB EC<br />

INC DWORD PTR DS:[EAX]<br />

PUSHAD<br />

MOV ESI,NFO_Buil.00432000<br />

LEA EDI,DWORD PTR DS:[ESI+FFFCF000]<br />

PUSH EDI<br />

OR EBP,FFFFFFFF<br />

JMP SHORT NFO_Buil.0044E942<br />

JMP SHORT NFO_Buil.0044E920<br />

ali bez obzira na sve i ovaj UPX “Protector” se otpakuje na isti nacin kako i<br />

klasicna UPX i kao UPX Scrambler. Mislim da je ovaj protector napisan samo<br />

zato da se aplikacije pakovane UPXom ne bi otpakivale preko -d opcije u<br />

UPXu. Za one koji to ne znaju UPXovana aplikacija se moze otpakovati preko<br />

samog pakera koji se moze preuzeti sa http://upx.sourcef<strong>org</strong>e.net. Sve sto<br />

treba da uradite je da startujete upx.exe sa parametrom upx -d imefajla.exe<br />

i on ce se otpakovati za nekoliko sekundi. Naravno UPX ne moze da otpakuje<br />

programe “zasticene” UPX Protectorom i UPX Scramblerom. Ovo moramo da<br />

uradimo rucno.<br />

Jednostavno cemo odskrolovati na sam kraj algoritma za otpakivanje i<br />

videcemo sledece:<br />

0044EA71 > \61<br />

POPAD<br />

0044EA72 . C3<br />

RET<br />

0044EA73 > 61<br />

POPAD<br />

0044EA74 . EB 06<br />

JMP SHORT NFO_Buil.0044EA7C<br />

0044EA76 AD DB AD<br />

0044EA77 FA DB FA<br />

0044EA78 EA DB EA<br />

0044EA79 00 DB 00<br />

0044EA7A . 00EA<br />

ADD DL,CH<br />

0044EA7C >- E9 2B52FCFF JMP NFO_Buil.00413CAC<br />

Videcemo da se ispod prve POPAD komande nalazi RET, sto nam je totalno<br />

nebitno, a ispod druge skok koji vodi na drugi skok 0044EA7C, koji dalje vodi<br />

na sam OEP. Vidimo da cak iako je ovaj algoritam malo promenjen osnove<br />

otpakivanja ostaju iste. Dakle sve sto treba da uradimo je da postavimo<br />

breakpoint na zadnju jump komandu, da pritisnemo F9 da bismo dosli do<br />

samog breakpointa i da pritisnemo F8 1x kako bismo se nasli na OEPu. I evo<br />

kako to OEP izgleda:<br />

00413CAC 55 PUSH EBP<br />

00413CAD 8BEC MOV EBP,ESP<br />

00413CAF 6A FF PUSH -1<br />

00413CB1 68 D8694100 PUSH NFO_Buil.004169D8<br />

Posle ovoga ostaje samo da uradimo memory dump i popravku importa na<br />

isti nacin kao da je u pitanju obican UPX.<br />

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

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

Saved successfully!

Ooh no, something went wrong!