Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Duzina instrukcija, mali problem

[es] :: Asembler :: Duzina instrukcija, mali problem

[ Pregleda: 2915 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vojislav Milunovic

Član broj: 25
Poruke: 2117
195.252.85.*



+1 Profil

icon Duzina instrukcija, mali problem05.02.2005. u 22:23 - pre 233 meseci
Ok ajde da prtpostavimo da sam sve prefixe pregledao, ali me ubija kako da provalim da li je insturkcija 1-2 bajta, ajde recimo da sam uzeo push pop i mov.
to mu dodje
mov eax, ecx
10001011 11reg/reg

push reg/pop reg
push ->> 01010reg
popb ->> 01011reg

Ajde prvo kad sam pogledao ove instrukcije reko sebi, aha, ako je setovan prvi bit onda je 2byte instr ako nije onda je 1byte (mov/push/pop) e tu mi ulece koska sledece sadrzine:
xchg eax, reg
10010reg
i to sam se slogirao, e sad mene zanima kako ja da znam da li je u pitanju opcode od 1 byte ili je pak rec o opcode od 2 byte, nemam, pojma kako to da izvedem, evo citam intell dokumentaciju ali nista pametno ne nadjoh =( (mozda i ima nesto pametno ali ja ne vidim)

Poz...

 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.sava.sczg.hr.



Profil

icon Re: Duzina instrukcija, mali problem05.02.2005. u 22:35 - pre 233 meseci
Ukoliko je jedan od operanada za xchg eax registar, duljina je jedan bajt, inače dva. eax je malo poseban jer se često koristi i zato su neki opkodi optimizirani.

Pogledaj z0mbiev LDE (Length Disassembler Engine), mali je ali pali :>
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
195.252.85.*



+1 Profil

icon Re: Duzina instrukcija, mali problem05.02.2005. u 22:45 - pre 233 meseci
Ma znam zato sam i postovao da me zbunjuje to oko duzine =)
jer sam se prvo istripovao da ako je setovan 10000000 onda je 2 byte ali me je u pojam ubio xchg eax/reg jer je ona 1byte ali ima setovan bit 10000000 =) Tako da mi je ta zamisao da trazim po bitovima otpala =(

A uzgred di si se ti sakrio? Nema te na ICQ =)))
 
Odgovor na temu

Sundance

Član broj: 7510
Poruke: 2559
*.sava.sczg.hr.



Profil

icon Re: Duzina instrukcija, mali problem05.02.2005. u 22:50 - pre 233 meseci
Pa onda provjeri odvojeno da li se radi o xchg eax, <reg> kao specijalan slučaj :)

ICQ...eh...ima tamo puno napasti....veća mi je tlaka izvjesnim inidividuumima reći da sjašu, pa ga zato najradije i ne palim :>
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
195.252.85.*



+1 Profil

icon Re: Duzina instrukcija, mali problem05.02.2005. u 23:27 - pre 233 meseci
Uzmi bre jabber bratac =)
 
Odgovor na temu

BaCkSpAcE

Član broj: 10
Poruke: 518
213.244.197.*



Profil

icon Re: Duzina instrukcija, mali problem06.02.2005. u 02:15 - pre 233 meseci
Pogledaj ono sto sam pisao u topicu Instrukcioni kod. Registar naredbi i dekoder?
Naziv topika nema mnogo veze sa onim sto je autor teme ustvari hteo, ali bitno je da je to ono sto ustvari tebi treba: http://www.elitesecurity.org/tema/92300

1-bajtni format: opcode [registar]
jedan bajt je kada se operand podrazumeva, ili kad je neki registar u pitanju...
npr: pop eax; push ebx; inc eax; dec eax...
2-bajtni format: opcode (mod reg r/m)
dva bajta je kad je neka instrukcija tipa registar/memorija u/iz registra bez pomeraja...
npr: mov eax, ebx; add ecx, edx; mov ebx, [eax]...
3-bajtni format: opcode (neposredni operand)
tri bajta je kad ides neposredni operand u/iz registra...
npr: add esp, -10...

Ima i meni tu jos nekih nejasnih stvari, ali ovo je pravi put :)
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
195.252.85.*



+1 Profil

icon Re: Duzina instrukcija, mali problem06.02.2005. u 03:09 - pre 233 meseci
Ma kapiram ja to =)
Nego jer ima neka forica da ja unapred znam koja je instrukcija ima modR/m ili moram sve pojedinačno da ih testiram po opkodu? Gledam ovog z0mbia dečko nije normalan šta je sve napisao =)))
 
Odgovor na temu

[es] :: Asembler :: Duzina instrukcija, mali problem

[ Pregleda: 2915 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.