deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
5 oct. 2007 à 17:03
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
8 oct. 2007 à 21:20
Yop à tous,
Voila je travail sur un service que j'avais codé sous XP et qui fait un acces à la registry avec les API Reg... et qui biensur ne fonctionne pas sous vista, la registry étant protégée. Donc je me suis dit , comme un service est un programme système, je doit pouvoir utiliser les fonctions du DDK. J'ai donc trouver : ZwOpenKey() et ZwQueryValueKey .
Seulement je ne comprend pas très bien leur utilisation. Car de 1 ZwOpenKey renvoie un pointeur sur HANDLE, est-ce l'équivalent à HKEY ? et puis il y à aussi le dernier paramètre de cette fonction , un pointeur sur une structure OBJET_ATTRIBUTES qui me parait vague.
Et pour la deuxième fonction, moi je veu simplement récuperer la valeur de ma key , mais aparament, je suis obligé de récuperer plus d'informations et vu les champs de la structure. Enfin bref , je ne sais pas trop, c'est fonctions me paraissent fort vague comparé aux API du SDK.
Est-ce que quelqu'un pourrait me montrer un exemple ou autre ? car là je sèche.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 8 oct. 2007 à 18:14
Salut,
En plus de HKLM pas forcément dispo tout de suite, il faut aussi faire
gaffe à HKCU : le compte LocalSystem n'utilise pas le même HKCU
que l'utilisateur courant.
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 8 oct. 2007 à 19:09
Un service est par essence une clé du registre dans HKLM...
Donc si un service se lance c'est que forcément HKLM est dispo.. a preuve du contraire....
Par contre il est évident que HKCU n'est pas celui de l'utilisateur courant car il s'agit du compte localsystem
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 oct. 2007 à 19:37
C'est quoi cette déduction ???
Fort heureusement que ce n'est plus ainsi, nimporte qui pouvant accéder à nimporte quoi, ce qui amenait le système à se vautrer quand un prog plantait, le bon temps des system 16 bits.
Le loader system lit ce qu'il veut, pas pour autant que la ressource est dispo pour les autres.
Je le signale parce que ça a été confirmé.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 8 oct. 2007 à 21:10
Les services en démarrage auto qui ne sont pas des drivers et qui ne sont pas en boot start sont lancés par le contrôleur de services ( qui est lancé après session manager qui a terminé de monter les ruches system, hardware et localmachine.
Le boot de NT6 est certe différent mais garde le même principe.
OK,, l'accès au registre est forcément controlé... NT5/6 ne sont pas du vulgaire 95... Néanmoins, HKLM est accessible, hormis clés protégées, à un service dont le démarrage est type auto.
Sinon comment un winlogon, une instance Oracle, un antivirus, un firewall pourrait se lancer sans accès à HKLM ?
Les descriptions du process de boot de NT5/6 ne me monte en aucun cas le contraire.