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.

ASM for Crackers - Part IV<br />

Poslednje poglavlje o osnovama ASMa je namenjeno objasnjenju<br />

stringova i pristupanju memoriji iz ASMa.<br />

Stringovi - predstavljaju niz ASCII slova koja zajedno cine jednu<br />

recenicu ili jednu rec. Duzina stringova moze biti proizvoljna ali ono sto je<br />

karakteristicno za stringove je da se svaki string mora zavrsavati sa istim<br />

00h bajtom. Posto ovaj bajt ne predstavlja ni jedno slovo, stringovi se lako<br />

razlikuju od stalog koda. Primera radi evo jednog stringa:<br />

00403040 59 6F 75 72 Your<br />

00403048 20 6E 61 6D 65 20 6D 75 name mu<br />

00403050 73 74 20 62 65 20 61 74 st be at<br />

00403058 20 6C 65 61 73 74 20 66 least f<br />

00403060 69 76 65 20 63 68 61 72 ive char<br />

00403068 61 63 74 65 72 73 20 6C acters l<br />

00403070 6F 6E 67 21 00 ong!.<br />

Kao sto se vidi i svaki karakter stringa ima svoju adresu ali je adresa celog<br />

stringa adresa prvog slova. Kada se cita string koji pocinje od adrese<br />

00403040 on se cita od tog prvog bajta pa sve do poslednjeg 00 bajta.<br />

Zakljucujemo da stringovi predstavljaju sve tekstualne poruke koje se nalaze<br />

u nekom programu.<br />

Memory - Pomocu ASMa je moguce veoma lako pristupiti svim<br />

adresama exe-a koji se trenutno izvrsava. Postoji veci broj komandi i<br />

varijacija istih tako da cu ja navesti samo najcesce koriscene komande.<br />

Postoje dve vrste manipulacije memorijom:<br />

1) Manipulacija samo jednog bajta<br />

2) Manipulacija niza bajtova<br />

BYTE PTR - Prvo cu vam objasniti kako se koristi komanda koja se ponasa<br />

kao referenca ka zadatom bajtu. Za ovo se koristi samo jedna komanda u<br />

obliku:<br />

BYTE PTR DS:[RVA adresa]<br />

U ovoj komandi sve je konstanta osim RVA adrese koja moze biti ili adresa ili<br />

registar. Posto je ovo samo deo komande moze se koristiti sa svim ostalim<br />

komandama koje imaju jedan ili dva parametra. Ovo znaci da se BYTE PTR<br />

moze koristiti uz MOV,XOR,ADD,IMUL,...<br />

DWORD PTR - Za razliku od prosle komande ova komanda se koristi za<br />

pristupanje nizu bajtova. Za ovo se koristi samo jedna komanda u obliku:<br />

DWORD PTR DS:[RVA adresa]<br />

U ovoj komandi sve je konstanta osim RVA adrese koja moze biti ili adresa ili<br />

registar. Posto je ovo samo deo komande moze se koristiti sa svim ostalim<br />

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

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

Saved successfully!

Ooh no, something went wrong!