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-Scrambler RC1.x<br />
Vec je objasnjeno kako se otpakuje UPX. UPX-Scrambler predstavlja<br />
samo malu modifikaciju pakerskog koda kako se on ne bi lako prepoznao i<br />
jos lakse otpakovao. Ako izuzmemo ovu cinjenicu videcemo da se i ovaj<br />
skremblovani UPX veoma lako otpakuje. Meta se nalazi u folderu Cas10 a<br />
zove se crc32.upx-scrambler.exe. Zeleo bih da napomenem da sam ovu<br />
aplikaciju stavio kao primer samo zato sto nisam imao UPX-Scrambler da<br />
zapakujem neki fajl, nadam se da se Ghosthunter nece ljutiti. Inace<br />
aplikacija je jako korisna ako zelite da proverite da li se CRC32 nekog fajla<br />
promenio.<br />
Otvorite ovu metu pomocu Ollyja i videcete sledece na OEPu:<br />
0041544F > $ 90<br />
NOP<br />
00415450 > 61 POPAD<br />
00415451 . BE 00E04000 MOV ESI,crc32_up.0040E000<br />
00415456 . 8DBE 0030FFFF LEA EDI,DWORD PTR DS:[ESI+FFFF3000]<br />
0041545C . 57<br />
PUSH EDI<br />
0041545D . 83CD FF<br />
OR EBP,FFFFFFFF<br />
00415460 . EB 10 JMP SHORT crc32_up.00415472<br />
00415462 . EB 00 JMP SHORT crc32_up.00415464<br />
00415464 >^ EB EA JMP SHORT crc32_up.00415450<br />
00415466 .^ EB E8 JMP SHORT crc32_up.00415450<br />
00415468 > 8A06 MOV AL,BYTE PTR DS:[ESI]<br />
0041546A . 46<br />
INC ESI<br />
0041546B . 8807<br />
MOV BYTE PTR DS:[EDI],AL<br />
Ovo ni malo ne podseca na UPX, ali slicnost postoji. Ako pogledate dole na<br />
sam kraj algoritma za otpakivanje videcete da se nalazi par komandi slicnih<br />
UPXu. Ti zadnji redovi izgledaju ovako:<br />
0041559E > \60<br />
0041559F .- E9 1C69FFFF<br />
PUSHAD<br />
JMP crc32_up.0040BEC0<br />
004155A4 BC554100 DD crc32_up.004155BC<br />
004155A8 C4554100 DD crc32_up.004155C4<br />
004155AC CC INT3<br />
004155AD D4 DB D4<br />
004155AE 40 DB 40 ; CHAR '@'<br />
004155AF 00 DB 00<br />
Primeticemo slicnost sa UPXom samo sto se u UPX pre zadnjeg skoka nalazi<br />
POPAD a ovde se nalazi PUSHAD komanda. Postavite breakpoint na JMP to<br />
jest na adresu 0041559F, pritisnite F9 da startujete program i program ce<br />
zastati na adresi 0041559F. Sada ostaje samo da pritisnemo F8 i da izvrsimo<br />
i ovaj skok kako bi smo se nasli na OEPu. Posle izvrsenja ovog skoka<br />
nalazimo se ovde:<br />
0040BEC0 55 PUSH EBP ; USER32.77D40000<br />
0040BEC1 8BEC MOV EBP,ESP<br />
0040BEC3 83C4 F4 ADD ESP,-0C<br />
0040BEC6 B8 38BE4000 MOV EAX,crc32_up.0040BE38<br />
Ovo je pravi OEP i tu treba da uradimo memory dump. Posle dumpa treba da<br />
uradimo jos popravljanje importa sa ImpRecom i uspesno smo zavrsili sa<br />
otpakivanjem UPX-Scramblera.<br />
<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 199 <strong>of</strong> 293