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-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

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

Saved successfully!

Ooh no, something went wrong!