[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