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.

- ESI dobija vrednost [EBP-C]<br />

- ESI se XORuje sa [EBP-14] i sa [EBP-10]<br />

- ESIju se dodaje 2<br />

- Rezultat dela cetiri za uneti serijski 123456789 je 33.<br />

ESI = (t[1] xor t[2] xor [t3]) + 2 = 33h<br />

Posto smo rastumacili prvi deo koda preci cemo na drugi deo u kome se<br />

pojavljuje string a55ayUg>sY9d19x koji se dekriptuje. Pre nego sto pocnemo<br />

napisacemo ovaj string ovako:<br />

d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8] d[9] d[10] d[11] d[12] d[13] d[14] d[15]<br />

a 5 5 a y U g > s Y 9 d 1 9 x<br />

A sada cemo preci na analizu koda celinu po celinu:<br />

00407DF4 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] /*Sub 1-1<br />

00407DF7 |. 33DB<br />

XOR EBX,EBX<br />

00407DF9 |. 8A18<br />

MOV BL,BYTE PTR DS:[EAX]<br />

00407DFB |. 33DE<br />

XOR EBX,ESI<br />

00407DFD |. 335D F4<br />

XOR EBX,DWORD PTR SS:[EBP-C]<br />

00407E00 |. 8D45 FC<br />

LEA EAX,DWORD PTR SS:[EBP-4]<br />

00407E03 |. E8 B0BBFFFF CALL NAG-RAR.004039B8<br />

00407E08 |. 8818 MOV BYTE PTR DS:[EAX],BL */<br />

Ovo je poddeo 1-1 i predstavlja samo trecinu poddela 1. Ukratko poddeo<br />

jedan se odnosi na prva tri karaktera enkriptovanog stringa. Zasto tri Zato<br />

sti se sva tri XORuju po istom principu. Ako analizirate kod primeticete ovo:<br />

e[1] = d[1] xor ESI xor t[1]<br />

e[2] = d[2] xor ESI xor t[1]<br />

e[3] = d[3] xor ESI xor t[1]<br />

gde je e[x] vrednost koju ce dobiti enkriptovani string. Primetite da se<br />

enkriptovani string menja posle XORovanja!<br />

00407E3A |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] /*Sub 2-1<br />

00407E3D |. 33DB<br />

XOR EBX,EBX<br />

00407E3F |. 8A58 03<br />

MOV BL,BYTE PTR DS:[EAX+3]<br />

00407E42 |. 33DE<br />

XOR EBX,ESI<br />

00407E44 |. 335D EC<br />

XOR EBX,DWORD PTR SS:[EBP-14]<br />

00407E47 |. 8D45 FC<br />

LEA EAX,DWORD PTR SS:[EBP-4]<br />

00407E4A |. E8 69BBFFFF CALL NAG-RAR.004039B8<br />

00407E4F |. 8858 03 MOV BYTE PTR DS:[EAX+3],BL */<br />

Ovo je druga podcelina i odnosi se na druga tri karaktera enkriptovanog<br />

stringa. Vaze sledece jednakosti:<br />

e[4] = d[4] xor ESI xor t[2]<br />

e[5] = d[5] xor ESI xor t[2]<br />

e[6] = d[6] xor ESI xor t[2]<br />

00407E7F |. 8858 05 MOV BYTE PTR DS:[EAX+5],BL /*Sub 3-1<br />

00407E82 |. 8B45 FC<br />

MOV EAX,DWORD PTR SS:[EBP-4]<br />

00407E85 |. 33DB<br />

XOR EBX,EBX<br />

00407E87 |. 8A58 06<br />

MOV BL,BYTE PTR DS:[EAX+6]<br />

00407E8A |. 33DE<br />

XOR EBX,ESI<br />

00407E8C |. 335D F0<br />

XOR EBX,DWORD PTR SS:[EBP-10]<br />

00407E8F |. 8D45 FC<br />

LEA EAX,DWORD PTR SS:[EBP-4]<br />

00407E92 |. E8 21BBFFFF CALL NAG-RAR.004039B8<br />

00407E97 |. 8858 06 MOV BYTE PTR DS:[EAX+6],BL */<br />

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

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

Saved successfully!

Ooh no, something went wrong!