The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
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