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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

dekripcija i provera checksuma (registar EDX i CMP komanda na adresi<br />

00410549). Ako se ovaj checksum slaze onda ce se skociti na adresu<br />

00410429, na kojoj se nalazi sledece:<br />

00410429 > /55 PUSH EBP<br />

0041042A |8BEC<br />

MOV EBP,ESP<br />

0041042C |83C4 F0<br />

ADD ESP,-10<br />

0041042F |B8 9C7F4000 MOV EAX,NAG-Cryp.00407F9C<br />

00410434 |E8 4B40FFFF CALL NAG-Cryp.00404484<br />

00410439 .^|EB C6 JMP SHORT NAG-Cryp.00410401<br />

0041043B |0000<br />

ADD BYTE PTR DS:[EAX],AL<br />

Ovo predstavlja samo jedan deo standardnog Delphi OEPa stoga cemo izvrsiti<br />

sav ovaj kod sa F8. Posle izvrsenja JMP komande naci cemo se ovde:<br />

00410401 > /B8 FD7F4000 MOV EAX,NAG-Cryp.00407FFD<br />

00410406 . |B9 1B000000 MOV ECX,1B<br />

0041040B > |83C0 01 ADD EAX,1<br />

0041040E . |8030 33<br />

XOR BYTE PTR DS:[EAX],33<br />

00410411 . |8030 44 XOR BYTE PTR DS:[EAX],44<br />

00410414 .^|E2 F5 LOOPD SHORT NAG-Cryp.0041040B<br />

00410416 . |A1 10A74000 MOV EAX,DWORD PTR DS:[40A710]<br />

0041041B . |A3 4CA84000 MOV DWORD PTR DS:[40A84C],EAX<br />

00410420 . |EB 1F JMP SHORT NAG-Cryp.00410441<br />

00410422 |90 NOP<br />

I ovo je vec vise puta vidjeni kod u ovoj meti. Upotreba mu je ista kao i u<br />

prethodna dva slucaja, samo sto su ovaj put na meti sledece adrese<br />

00407FFD i 1B sledecih. Posle izvrsenja skoka na adresi 00410439 doci<br />

cemo:<br />

00410441 > \B8 407F4000 MOV EAX,NAG-Cryp.00407F40 /* Prva dekripcija<br />

00410446 . B9 04000000 MOV ECX,4<br />

0041044B > 8030 44<br />

XOR BYTE PTR DS:[EAX],44<br />

0041044E . 83C0 01<br />

ADD EAX,1<br />

00410451 .^ E2 F8 LOOPD SHORT NAG-Cryp.0041044B */<br />

00410453 . B8 487F4000 MOV EAX,NAG-Cryp.00407F48 /* Druga dekripcija<br />

00410458 . B9 2B000000 MOV ECX,2B<br />

0041045D > 8030 44<br />

XOR BYTE PTR DS:[EAX],44<br />

00410460 . 83C0 01 ADD EAX,1<br />

00410463 .^ E2 F8 LOOPD SHORT NAG-Cryp.0041045D */<br />

00410465 . B8 107F4000 MOV EAX,NAG-Cryp.00407F10 /* Treca dekripcija<br />

0041046A . B9 12000000 MOV ECX,12<br />

0041046F > 8030 44<br />

XOR BYTE PTR DS:[EAX],44<br />

00410472 . 83C0 01 ADD EAX,1<br />

00410475 .^ E2 F8 LOOPD SHORT NAG-Cryp.0041046F */<br />

00410477 . B8 107F4000 MOV EAX,NAG-Cryp.00407F10 /* Cetvrta dekripcija<br />

0041047C . B9 12000000 MOV ECX,12<br />

00410481 . BA 00000000 MOV EDX,0<br />

00410486 > 0310 ADD EDX,DWORD PTR DS:[EAX]<br />

00410488 . 83C0 01 ADD EAX,1<br />

0041048B .^ E2 F9 LOOPD SHORT NAG-Cryp.00410486 */<br />

0041048D . 81FA 45CE9313 CMP EDX,1393CE45 /* checksum provera<br />

00410493 . 74 0F JE SHORT NAG-Cryp.004104A4 */<br />

Analizirao sam ovaj deo koda i ovde je sve jasno, stoga posle izvrsavanja JE<br />

skoka na adresi 00410493 zavrsicemo ovde:<br />

004104A4 > \8B15 94044100 MOV EDX,DWORD PTR DS:[410494] /* Provera 410494<br />

004104AA . 81EA 00909090 SUB EDX,90909000<br />

004104B0 . 83C2 1A<br />

ADD EDX,1A<br />

004104B3 . 83FA 29<br />

CMP EDX,29<br />

004104B6 .^ 75 E1 JNZ SHORT NAG-Cryp.00410499 */ ExitProcess<br />

004104B8 . B8 807D4000 MOV EAX,NAG-Cryp.00407D80 /* Dekripcija jedan<br />

004104BD . B9 19000000 MOV ECX,19<br />

004104C2 > 8030 29<br />

XOR BYTE PTR DS:[EAX],29<br />

004104C5 . 83C0 01<br />

ADD EAX,1<br />

004104C8 .^ E2 F8 LOOPD SHORT NAG-Cryp.004104C2 */<br />

004104CA . 8B15 807D4000 MOV EDX,DWORD PTR DS:[407D80] /* Provera 407D80<br />

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

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

Saved successfully!

Ooh no, something went wrong!