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.

004032F4 ne menja tokom ovog CALLa. Stoga cemo pronaci mesto na kome<br />

se ove dve adrese menjaju. Pritisnucemo desno dugme na samom pocetku<br />

programa (adresa 00407000) i izabracemo Search for -> Binary string u koji<br />

cemo uneti okrenutu adresu 00403B30 (ovo se okrece jer se binarne adrese<br />

zapisuju u reversnom redosledu). Ovo treba da izgleda kao na sledecoj slici:<br />

Posle ovoga je potrebno<br />

samo pritisnuti dugme OK<br />

koje ce nas odvesti do<br />

ASM komandi koje se<br />

koriste za pristupanje i/ili<br />

modifikovanje adrese<br />

00403B30. Ovako cemo<br />

pronaci sve MOV PTR<br />

komande koje se koriste<br />

za pristupanje datoj<br />

adresi. Posle klika na<br />

dugme Ok Olly ce nas<br />

odvesti na sledecu adresu:<br />

00407141 /$ 55 PUSH EBP<br />

00407142 |. 8BEC MOV EBP,ESP<br />

00407144 |. BF 303B4000 MOV EDI,keygenme.00403B30 33F6<br />

/XOR ESI,ESI<br />

0040714D |> 3BDE<br />

|/CMP EBX,ESI<br />

0040714F |. 74 2D<br />

||JE SHORT keygenme.0040717E<br />

00407151 |. 33C9 ||XOR ECX,ECX<br />

00407153 |. 53 ||PUSH EBX<br />

00407154 |. 81C3 C8544000 ||ADD EBX,keygenme.004054C8<br />

0040715A |. 8A03<br />

||MOV AL,BYTE PTR DS:[EBX]<br />

0040715C |. 91<br />

||XCHG EAX,ECX<br />

0040715D |. 5B<br />

||POP EBX<br />

0040715E |. 56<br />

||PUSH ESI<br />

0040715F |. 81C6 C8544000 ||ADD ESI,keygenme.004054C8<br />

00407165 |. AC ||LODS BYTE PTR DS:[ESI]<br />

00407166 |. 5E ||POP ESI<br />

00407167 |. 3BC8 ||CMP ECX,EAX<br />

00407169 |. 0F82 03000000 ||JB keygenme.00407172<br />

0040716F |. AA<br />

||STOS BYTE PTR ES:[EDI]<br />

00407170 |. EB 0C ||JMP SHORT keygenme.0040717E<br />

00407172 |> 2BC1 ||SUB EAX,ECX<br />

00407174 |. 83C0 FE ||ADD EAX,-2<br />

00407177 |. 81F0 58434000 ||XOR EAX,404358<br />

0040717D |. AA<br />

||STOS BYTE PTR ES:[EDI]<br />

0040717E |> 46<br />

||INC ESI<br />

0040717F |. 83FE 05<br />

||CMP ESI,5<br />

00407182 |.^ 7C C9 |\JL SHORT keygenme.0040714D<br />

00407184 |. 43 |INC EBX<br />

00407185 |. 83FB 07 |CMP EBX,7<br />

00407188 |.^ 7C C1 \JL SHORT keygenme.0040714B<br />

0040718A |. 8BE5<br />

MOV ESP,EBP<br />

0040718C |. 5D<br />

POP EBP<br />

0040718D \. C3<br />

RET<br />

Dakle ovo je rutina za generisanje tacnog serijskog broja! Kao sto vidimo<br />

rutina pocinje na adresi 0040714B, a zavrsava se na adresi 00407188. Sada<br />

nam ostaje samo da analiziramo ovu petlju kako bismo razumeli kako se to<br />

generise validan serijski broj. Ovako ce izgledati nasa analiza:<br />

0040715A<br />

0040715C<br />

U AL se stavlja prvo slovo unetog imena<br />

U ECX se stavlja prvo slovo iz imena<br />

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

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

Saved successfully!

Ooh no, something went wrong!