[pso] [T1] Un pic mai mult despre interceptarea apelurilor de sistem

Octavian Purdila tavi at cs.pub.ro
Tue Mar 11 15:41:59 EET 2008


On Tuesday 11 March 2008, Stefan Bucur wrote:

> >  >
> >  > PS: Constat o inadvertenta intre exemplul de pe kernelnewbies.org si
> >  > cel dat in cursul 2 de pe site-ul PSO: in curs este prezentata o
> >  > structura cu numai 7 parametri (struct syscall_params) care sa acopere
> >  > stack frame-ul, in timp ce pe kernelnewbies se foloseste struct
> >  > pt_reg, care contine mult mai multe campuri. Care dintre variante este
> >  > cea corecta?
> >
> >  Ambele variante sunt corecte :)
> >
> >  Doar primii sapte parametri sunt importanti pentru ca ei contine
> > parametri si respectiv numarul apelului de sistem.
> >
> >  tavi
>
> Din pacate am constatat ca nu toate apelurile de sistem respecta
> conventia asta. De exemplu (si aici am fost eu norocos/ghinionist ca
> am dat din start peste exemplul asta), apelul de sistem sys_clone
> (http://cs.pub.ro/~pso/lxr/source/arch/x86/kernel/process_32.c?v=linux-2.6.
>24.2#780) se foloseste de toata structura struct pt_regs, si chiar face
> referinta la alti membri decat cei 7 mentionati in curs (de exemplu se
> poate vedea cum se citeste valoarea lui pt_regs.esp, care este undeva
> pe la sfarsitul structurii). Eu am incercat interceptari folosind
> structuri mai mici, care contineau primii x membrii din pt_regs, insa
> pana n-am folosit intreg pt_regs-ul, n-am scapat de kernel panic.
> In fine, nu stiu daca sys_clone este singurul syscall mai ciudat, insa
> banuiesc ca e suficienta o singura exceptie ca regula sa nu mai fie
> valabila si sa nu mai poata fi folosita cu incredere.
>

Salut Stefan,

Da, nu functioneaza pentru clone si nici pentru exec. Oricum, exec nu merge 
nici cu pt_regs. 

N-am vrut sa folosec pt_regs in curs, pentru ca atunci:
a) fie nu o explic si o consideram o structura opaca -- nu e bine pentru ca 
apare o parte magica / neexplicata 
b) fie intru in detalii despre structura si complic discutia

Nu stiu daca a fost abordarea cea mai fericita - poate ar trebui sa mai adaug 
un slide in care sa intru in detalii pentru cazurile astea speciale? 

Mersi,
tavi














More information about the pso mailing list