[pso] Despre [tema1]Windows - KeServiceSystemTable

omar Chouydary chouydary at yahoo.com
Mon Mar 26 13:20:29 EEST 2007


Hai ca am reusit. Dar mai tin sa precizez ceva (sry pt cei pt care deja devin stresant :P ):
  Ai zis mai devreme asa ceva (Razvan):
   
  "> int ls; /* last service no */ -> aici e clar

vezi ca nu e indexul ultimului serviciu, ci numarul de apeluri valide"

  Asta este fals. De ce? Pt ca la noi in tema, voi adauga apelul MY_SYSCALL_NO care are numarul 0x200, adika 512 in decimal. In windows-ul nostru erau definite 296 de apeluri sistem (asta e ce returneaza .ls-ul). Deci, daca ar fi sa o luam dupa cum zici tu, ar trebui sa punem noul ls = vechi.ls + 1 adika ls=297. Asta e gresit, pt ca windows-ul interpreteaza aiurea si cand vine un apel pt 512 zice ca e mai mare ca 297 si nici nu il ia in calcul.
  Deci de fapt ls este chiar numarul ultimului apel de sistem, chiar daca numai 297 din ele sunt valide. Poate a mai avut cineva nelamurirea asta. Am vrut doar sa spun cum sta de fapt treaba.

omar Chouydary <chouydary at yahoo.com> wrote:
    Tot apropo de faza cu KeSer...[]=Ceva nu stiu daca era numai ora de vina (12 noaptea :) ) dar si in curs e ceva pus aiurea.. am vrut doar sa precizez, e in slide-urile cu apelurile de sistem la sfarsit ceva KeServiceSystemTable[0]->spt = ceva unde clar nu se poate apela cu "->" ci cu "." si poate si asta deruta :).
   
  Pe langa asta, am mai vazut ceva foarte interesant. Apropo de acel std.ct care ziceai ca nu prea se foloseste, nu numai ca nu se foloseste dar daca cumva vrei sa-i copiezi valoarea sau ceva te alegi cu un mare Crash (cum am patit eu), pt ca intr-adevar si in kernel valoarea sa este 0x00000 (adika null). Cam suspect ca e asa, nu stiu de ce l-au mai pus dar in fine .

omar Chouydary <chouydary at yahoo.com> wrote:
  La intrebarea cu copierea, am impresia (adica aproape sigur) ca trebuie camp cu camp, acum mi-am dat seama, sry  :).

Razvan Deaconescu <razvand at cs.pub.ro> wrote:   omar Chouydary wrote:
> Puteti preciza exact semnificatia fiecarui camp din structura std? Am 
> cam facut tema.. dar nu stiu sigur ce semnificatie are fiecare camp din 
> cei definiti in sci.h:
> struct std {
> void **st; /* service table */ -> aici e clar
> int *ct; /* counter table */ -> aici sa inteleg ca e vb de 
> nr. tabelei (0-3) ?

nu, e vorba de un contor de apeluri; poti sa-l pui pe NULL; nu e folosit

> int ls; /* last service no */ -> aici e clar

vezi ca nu e indexul ultimului serviciu, ci numarul de apeluri valide

> unsigned char *spt; /* service parameter table */ -> aici nu stiu 
> cu cat trebuie initializat
> };
> 

spt - service parameter table - este un vector de dimensiune std.ls; 
fiecare element contine numarul de octeti ocupat de parametrii apelului 
asociat; altfel spus pe pozitia 0 a vectorului spt se gaseste spatiul 
ocupat (numar de octeti) de parametrii apelului de sistem cu indexul 0; 
pe Windows este nevoie de asa ceva din cauza faptului ca exista un numar 
mare de parametri ai apelurilor de sistem si nu pot fi transmisi prin 
registre

nici sursele nu sunt foarte "enlighting", dar pot oferi o noua 
perspectiva :-)
http://cs.pub.ro/~pso/lxr/source/base/ntos/inc/ke.h?v=wrk-1.2#579

Razvan
_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso

    
---------------------------------
  Sucker-punch spam with award-winning protection.
Try the free Yahoo! Mail Beta._______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso


    
---------------------------------
  Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos._______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso


 
---------------------------------
Food fight? Enjoy some healthy debate
in the Yahoo! Answers Food & Drink Q&A.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070326/4c2977f7/attachment.html


More information about the pso mailing list