[pso] [Tema1][win] Interceptare apeluri de sistem

Claudiu Mihail claudiu.bogdan.mihail at gmail.com
Sat Feb 26 19:19:24 EET 2011


Salut,

Am cateva nelamuriri in legatura cu tema 1 pe windows. Legat de
interceptarile apelurilor de sistem am inteles ca trebuie inlocuit SDT-ul
(service descriptor table) cu unul nou care sa contina si noua inregistrare,
adica MY_SYSCALL_NO. Zis si facut. Acum, legat de structura struct std, daca
am inteles bine, atunci cand vine un apel de sistem se cauta dupa index in
service table adresa efectiva a rutinei (ca se se faca jump la ea). Ca sa
fac interceptarea, intuitia imi spune ca ar trebui sa inlocuiesc adresele
din service table cu adresa rutinei mele de tratare, care in cele din urma
va chema rutinele corecte, dupa logging and stuff. Presupunand ca ce am spus
pana acum este corect, intrebarea este cum chef rutinele corecte din rutina
mea de tratare? Bag niste cod de asm si fac jump (sau call) la adresa
rutinei corecte? Daca da sa inteleg ca service parameter table imi da lista
de bytes care reprezinta argumentele rutinei apelate si in consecinta
trebuie sa fac push la toti acesti bytes pe stiva? Daca nu atunci cum ar
trebui abordata problema?

Intreb pentru ca in cursul doi nu este foarte detaliat explicata partea de
windows, iar in documentatia de pe net este destul de greu de gasit ceva
foarte relevant (e posibil sa nu stiu eu ce sa caut, caz in care as aprecia
niste pointeri).

Thanks in advance,
Claudiu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110226/4107de9e/attachment.htm>


More information about the pso mailing list