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.

Posle izvrsavanja ove ASM komande rezultat ce se postaviti u EAX, a<br />

vrednost koju ce dobiti registar EAX je jednaka rezultatu ECX*4+6. Naravno<br />

ovde se postuje princip matematicke prednosti operacija tako da ce se prvo<br />

izvrsiti mnozenje a tek onda sabiranje.<br />

SHL/SHR – je binarna komanda koja se koristi za pomeranje bajtova u<br />

registrima u levu ili desnu stranu. Ova komanda bi u ASM izgledala ovako:<br />

SHR AL,3<br />

Dakle vidimo da da SHR/SHL komanda ima dva parametra: destination u<br />

vidu registra nad kojim se primenjuje operacija i count koji nam govori za<br />

koliko se brojevno pomera binarna vrednost AL registra. U praksi izvrsenje<br />

gornje komande, ako bi AL binarno bio jednak 01011011, bi izgledalo ovako:<br />

01011011 – Originalni AL sadrzaj<br />

00101101 – Pomeranje ALa u desno za jedno mesto<br />

00010110 – Pomeranje ALa u desno za jos jedno mesto<br />

00001011 – Pomeranje ALa u desno za jos jedno mesto<br />

Svi bajtovi koji su pomeranjem dovedeni do kraja fizicke velicine registra<br />

bivaju istisnuti. Poslednji istisnuti bajt se snima kao carry-flag. Naravno ova<br />

operacija se moze primenjivati i na 8bitnim, 16bitnim i na 32bitnim<br />

registrima.<br />

ROL/ROR – je binarna komanda koja se koristi za rotaciju bajtova u<br />

registrima u levu ili desnu stranu. Ova komanda bi u ASM izgledala ovako:<br />

ROL AL,3<br />

Dakle vidimo da da ROL/ROR komanda ima dva parametra: destination u<br />

vidu registra nad kojim se primenjuje operacija i count koji nam govori za<br />

koliko se brojevno pomera binarna vrednost AL registra. U praksi izvrsenje<br />

gornje komande, ako bi AL binarno bio jednak 01011011, bi izgledalo ovako:<br />

01011011xxx – Originalni AL sadrzaj<br />

x01011011xx – Pomeranje ALa u desno za jedno mesto<br />

xx01011011x – Pomeranje ALa u desno za jos jedno mesto<br />

xxx01011011 – Pomeranje ALa u desno za jos jedno mesto<br />

11001011 – Konacan izgled posle rotacije<br />

Kao sto vidite rotacija je slicna siftingu sa razlikom sto se istisnuti podaci<br />

vracaju na pocetak registra rotiranu u levu (ROL) ili desnu (ROR) stranu.<br />

Sada smo naucili najveci deo standardnih ASM komandi sa kojima cete se<br />

sretati prilikom reversinga aplikacija, ali ovo ne znaci da smo zavrsili sa<br />

ASMom, naprotiv tek pocinjemo sa zanimljivostima vezanim za ASM<br />

programe.<br />

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

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

Saved successfully!

Ooh no, something went wrong!