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