[pso] [Tema 1 win] - problema la setarea parametrilor syscall-ului pe stiva

Cristi Lazea cricotanierea at gmail.com
Thu Apr 3 14:22:31 EEST 2008


Salut.

Am o problema in momentul in care in metoda de interceptare incarc in stiva
parametrii pe care
trebuie sa-i ia apelul original: dupa ce apelez codul in asm (cel din curs),
care se ocupa cu
incarcarea parametrilor in stiva, la adresa "new_stack" am niste valori care
difera total
fata de cele care sunt data in test.exe, in metoda do_monitor() (cele
generate aleator).
Teoretic ar trebui sa imi apara aceleasi valori ->si in userspace in metoda
do_monitor(),
si in driver, in metoda mea care apeleaza syscall-ul original.
Insa nu apar. Si de aici, la testearea apelurilor, se intampla
numai chestii ciudate (e si normal, avand in vedere ca se apeleaza cu
parametrii gresiti).

De asemenea, am verificat codul pe care il intoarce syscall-ul original, iar
acesta este
STATUS_ACCESS_VIOLATION (0xC0000005) -> presupun ca din cauza parametrilor
gresiti
care sunt pusi pe stiva.

Intrebarea mea este urmatoarea: e vreun amanunt ce-mi scapa mie atunci cand
am scris codul in
asm din curs, care salveaza in stiva parametrii respectivi ?

Mentionez ca bucata de salvare in stiva e incadrata de un spinlock, asta ca
sa nu mai umble cineva
pe acolo in momentul in care fac eu modificari (am incercat si fara
spinlock, si rezultatul
e identic). De asemenea, syscall-no e preluat cum trebuie din eax
(intructiunea corespunzatoare e
din metoda mea, caci altfel, se altereaza eax-ul).

Multumesc frumos,
Cristi Lazea

<http://cs.pub.ro/%7Epso/lxr/ident?v=wrk-1.2;i=STATUS_ACCESS_VIOLATION>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20080403/7e14e368/attachment.htm 


More information about the pso mailing list