Buffer & memory problem

Pavel Kankovsky peak na kerberos.troja.mff.cuni.cz
Pátek Duben 11 14:06:57 CEST 1997


On Thu, 10 Apr 1997, Dufek Pavel wrote:

> je tu taky nejaky assemblerista ? Docela by mne zajimalo, jestli moznost 
> vykonavat (ne pouze cist ci ukladat) kod z stack segmentu procesu (coz je 
> "zakladem" drtive vetsiny soucasnych securitnich problemu linuxu) je 
> otazkou hardwarove nechopnosti (nekterych) CPU Intel x86 toto chranit nebo 
> otazkou neschopnosti autoru kernelu to tam napsat (asi do mmap, nevim) ?

Proces v linuxu ma pridelen (v intelske hantyrce "linearni") pametovy
prostor 0-0xc0000000, kteryzto je pokryt dvema segmenty: jednim kodovym a
jednim datovym segmentem. Segmentace jako takova je vubec vyuzivana
sporadicky, nebot filosofii Unixu mnohem vic vyhovuje strankovani, ktere
ovsem na Intelskych procesorech neumoznuje (narozdil od segmentu)
rozlisit pristup pro cteni dat a pro vykonavani (takova Alpha, ta to
umi).

Teoreticky by slo udelat, aby kodovy segment nepokryval cely pametovy
prostor, ale to neumoznuje vytvorit ruzne a obcas nespojite umistene
"executable" kusy pameti (coz silne pouziva dynamicky linker). Takze to
neni zcela trivialni problem. Ovsem--iniciative se meze nekladou! :)

(Navic mozna existuji programy, ktere pouzivaji ruzne "trampoliny" a
podobne techniky, ktere se spolehaji na vytvareni kusu kodu na zasobniku a
predpokladaji a priori, ze je to tam vykonavatelne, ale to je podruzne).

--Pavel Kankovsky aka Peak (troja.mff.cuni.cz network administration)




Další informace o konferenci Linux