Srodne teme
06.05.2001. adresa shell coda?
30.07.2001. vCard exploit
06.11.2004. shellcode
31.05.2003. Sendmail integer overflow
02.08.2003. Shellcode 0x00 encoding
27.10.2003. Winamp Error
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

EIP

[es] :: Asembler :: EIP

[ Pregleda: 4512 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gandalf
Goran Raovic
senior network engineer
Belgrade

Član broj: 52
Poruke: 248
195.252.103.*

Jabber: goran.raovic@gmail.com


+44 Profil

icon EIP05.05.2002. u 17:36 - pre 237 meseci
Zasta sluzi EIP registar??? Pogazuje na offset sledece instrukcije ili... ???
CCIE #22192
 
Odgovor na temu

SEH

Član broj: 2215
Poruke: 94
*.net.hinet.hr



Profil

icon Re: EIP05.05.2002. u 21:29 - pre 237 meseci
EIP = Extended Instruction Pointer. Radi to sto si rekao i jedini nacin da mu ocitas vrijednost jest preko call-pop trika:

call $+5;stavi na stack povratni EIP
pop ebp ;stavi u ebp taj EIP sa stacka

Prepisivanje EIP-a se dogadja kod buffer overflowa. To su uglavnom sve svrhe ovoga registra.

 
Odgovor na temu

gandalf
Goran Raovic
senior network engineer
Belgrade

Član broj: 52
Poruke: 248
195.252.103.*

Jabber: goran.raovic@gmail.com


+44 Profil

icon Re: EIP05.05.2002. u 22:35 - pre 237 meseci
E bas zato sto sam se zainteresovao za bufferoverflow mi i treba :o)

Svaka funkcija koja se poziva posle svog izvrsenja se vraca na mesto
poziva.Kako? U odeljku Registri sam pricao o kombinaciji CS:IP gde se IP koristi da pokazuje na offset od sledece instrukcije!Na 386+ procesorima imamo EIP
register,na novijim OS kao sto su Win i Linux sam OS vodi racuna o segmentima
tako da nam je samo EIP dovoljan za dalje cackanje po programu,ovako izgleda
poziv nekoj funkciji

call _ime_funkcije * a sa ret u toku funkcije se izlazi *

Naime kada se izvrsi call na stack se PUSHne EIP!Zasto? Pa rekao sam da funkcja
kada se pozove se vraca na mesto poziva?!Jel tako! E pa kad mi uradimo RET to
se u EIP POPne predjasnje sacuvan EIP.A sto ja uopste guram EIP na STACK.Pa
kako zasto rekli smo da se sve instrukcije izvrsavaju tako sto EIP pokazuje na
njih,kad pozvoemo funkciju EIP dobija novi offset gde pocinje funkcija!Zato
moramo da PUSHnemo EIP pre poziva(call to sam obavi) a na kraju funkcije
moramo da imamo RET sto bi bilo ekvivalentno POP EIP ili vraca se na offset
koji je bio pre poziva funkcije!:)


Ne kapiram sledece ako je ovako kako pise ovde onda bi se posle zavrsetka funkcije tok programa vratio na instrukciju koja je se neposredno izvrsila pre nego sto se funkcija pozvala i opet bi tok programa naisao na poziv ove funkcije i tako u krug ???? Dal sam ja stvarno glup ili ovo ne radi bas ovako kako je predator opisao u njegovom tut.. Logicno bi bilo da se u stack baca EIP posle pozivanja te funkcije a ne pre ??? :o)))
CCIE #22192
 
Odgovor na temu

gandalf
Goran Raovic
senior network engineer
Belgrade

Član broj: 52
Poruke: 248
195.252.103.*

Jabber: goran.raovic@gmail.com


+44 Profil

icon Re: EIP05.05.2002. u 22:42 - pre 237 meseci
E da jos ako imate nekih zanimljivih tekstica na (sr/en) o ovoj temi (naravno sa dosta prakticnih primera) ostavite linkove :o))


Tnx()
CCIE #22192
 
Odgovor na temu

SEH

Član broj: 2215
Poruke: 94
*.net.hinet.hr



Profil

icon Re: EIP05.05.2002. u 23:17 - pre 237 meseci
Imas li neki debugger? Preptostavljam da imas. Otvori bilo koji program u njemu i traceaj. Vidjet ces da je preupun raznih CALLova i RETova. Gledaj vrh stacka i EIP za vrijeme CALLa. Tako ces najbolje nauciti. Jebes sve linkove i textove, najbolje ti je da sam istrazujes.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.114.EUnet.yu

ICQ: 44582291


+58 Profil

icon Re: EIP05.05.2002. u 23:20 - pre 237 meseci
1. slobodno zaboravi na segment:offset adresiranje ako te ova tema zanima, ustvari zaboravi na to u opste jer se to ne koristi ni kod *nixa ni kod windowsa

2. ova tema spada u forum Art of Explotation

Citat:

Ne kapiram sledece ako je ovako kako pise ovde onda bi se posle zavrsetka funkcije tok programa vratio na instrukciju koja je se neposredno izvrsila pre nego sto se funkcija pozvala i opet bi tok programa naisao na poziv ove funkcije i tako u krug ???? Dal sam ja stvarno glup ili ovo ne radi bas ovako kako je predator opisao u njegovom tut.. Logicno bi bilo da se u stack baca EIP posle pozivanja te funkcije a ne pre ??? :o)))

nevraca se izvrsavanje kod-a na instrukciju koja je pozvala call nego na sledecu posle nje
znaci

call funkcija ;skacemo na izvrsenje funkcije
mov ax,bx ; ovde se vracamo
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

gandalf
Goran Raovic
senior network engineer
Belgrade

Član broj: 52
Poruke: 248
195.252.103.*

Jabber: goran.raovic@gmail.com


+44 Profil

icon Re: EIP05.05.2002. u 23:33 - pre 237 meseci
Cek sekun zar ako se u steck ubaci EIP funkcije(1) koja je pozvala neku funkciju(2) onda po zavrsetku funkcije(2) se ucitava opet funkcija (1). pojasni mi to malo please :o)
CCIE #22192
 
Odgovor na temu

SEH

Član broj: 2215
Poruke: 94
*.net.hinet.hr



Profil

icon Re: EIP05.05.2002. u 23:41 - pre 237 meseci
Citat:
gandalf:
Cek sekun zar ako se u steck ubaci EIP funkcije(1) koja je pozvala neku funkciju(2) onda po zavrsetku funkcije(2) se ucitava opet funkcija (1). pojasni mi to malo please :o)


Ucitava se ali instrukcija u func1 nakon CALLa func2.
 
Odgovor na temu

gandalf
Goran Raovic
senior network engineer
Belgrade

Član broj: 52
Poruke: 248
195.252.103.*

Jabber: goran.raovic@gmail.com


+44 Profil

icon Re: EIP05.05.2002. u 23:47 - pre 237 meseci
O.k hvala na odgovorima ukapirao sam :o)
CCIE #22192
 
Odgovor na temu

[es] :: Asembler :: EIP

[ Pregleda: 4512 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
06.05.2001. adresa shell coda?
30.07.2001. vCard exploit
06.11.2004. shellcode
31.05.2003. Sendmail integer overflow
02.08.2003. Shellcode 0x00 encoding
27.10.2003. Winamp Error
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.