IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Le descripteur de sécurité - registre


Sujet :

Windows

  1. #21
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Correcte oui mais elle est effectivement "vide" , tu viens à peine de la créer. Appelle SetEntriesInAcl pour lui ajouter des entrées.

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Melem Voir le message
    Correcte oui mais elle est effectivement "vide" , tu viens à peine de la créer. Appelle SetEntriesInAcl pour lui ajouter des entrées.
    Bah le but n'est pas de créer un ACL mais d'en lire un : je veux juste récupérer les informations contenues dans une DACL appartenant à n'importe quelle clé de registre.

    Je te montre où j'en suis :

    http://img222.imageshack.us/img222/677/acltest.jpg

    J'ai presque terminé, mais j'aurais aimé récupérer la structure TRUSTEE et GetExplicitEntriesFromAcl et la seule fonction qui semble les retourner via les structures EA.

    Donc ce n'est pas à moi de remplir la structure ACL, mais à la fonction GetSecurityDescriptorDacl. Je pense qu'à ce niveau c'est ok puisque comme tu le vois j'ai pu lire les ACE.

    Je ne comprends donc pas pourquoi je n'arrive pas à obtenir les EA et pourquoi count vaut toujours 0 alors que la fonction renvoie ERROR_SUCCESS.

    edit: Si j'ai dit une bêtise, c'est que j'ai pas compris quelque chose

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Personne n'a une idée ?

    Merci.

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Voici le morceau de code qui pose problème : j'ai fait le programme le plus petit possible afin de pouvoir cerner l'origine du problème. A noter que je fais mes tests sous Vista. A noter qu'une autre personne a testé et rencontre le même problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <windows.h>
    #include <Sddl.h>
    #include <stdio.h>
    #include <aclapi.h>
    
    int main ()
    {
      HKEY                                  hKey;
      DWORD                                 retCode = 0;
      int                                   a = 0, i = 0;
    
      retCode = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft", 0, KEY_READ, &hKey);
      if (retCode == ERROR_SUCCESS)
        {
          PSECURITY_DESCRIPTOR              pSD = NULL;
          DWORD                             cbSD = 0;
    
          retCode = RegGetKeySecurity(hKey, DACL_SECURITY_INFORMATION, 0, &cbSD);
          pSD = malloc(cbSD);
          retCode = RegGetKeySecurity(hKey, DACL_SECURITY_INFORMATION, pSD, &cbSD);
          if (retCode == ERROR_SUCCESS)
            {
              // DACL informations
    
              BOOL                          bDaclPresent;
              PACL                          pAcl = NULL;
              BOOL                          bDaclDefaulted;
    
              retCode = GetSecurityDescriptorDacl(pSD, &bDaclPresent, &pAcl, &bDaclDefaulted);
              if (retCode != 0)
                {
                  if(bDaclPresent == TRUE) printf("the security descriptor contains a DACL\n");
                  else printf("the security descriptor does not contain a DACL\n");
    
                  if(bDaclDefaulted == TRUE) printf("DACL was retrieved by a default mechanism\n\n");
                  else printf("the DACL was explicitly specified by a user\n\n");
    
                  ULONG count;
                  PEXPLICIT_ACCESS pEA;
    
                  retCode = GetExplicitEntriesFromAcl(pAcl, &count, &pEA);
                  if (retCode != ERROR_SUCCESS) { printf("GetExplicitEntriesFromAcl() failed with STATUS = 0x%08x\n", retCode); }
                  printf("count = %d\n", count);
    
                  printf("   Number of ACE = %d \n", pAcl->AceCount);
                }
              else
                printf("ERROR !!\n");
            }
          else
            printf("ERROR !!\n");
        }
      else
        printf("ERROR !!\n");
    
      system("pause");
      exit(EXIT_SUCCESS);
    }
    Si je mets juste NULL ou "Software" comme deuxième argument à RegOpenKeyEx, cela marche très bien. Mais si je mets "Software\\Microsoft", par exemple, count vaut toujours 0. Et à chaque fois GetExplicitEntriesFromAcl me renvoie ERROR_SUCCESS.

    Il y a forcément une explication à cela, mais je n'arrive pas à la trouver.

    J'espère que certains pourront m'aider

    Merci.

  5. #25
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Super, c'est ce que tu aurais du faire depuis longtemps. J'vais voir ça dès que j'en aurai le temps. A+.

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Melem Voir le message
    Super, c'est ce que tu aurais du faire depuis longtemps. J'vais voir ça dès que j'en aurai le temps. A+.
    Merci Melem

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Je n'arrive toujours pas à trouver le problème...


  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Bon j'ai résolu le problème.


+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Descripteur de sécurité pour createjobobject
    Par lecuye_j dans le forum Windows
    Réponses: 2
    Dernier message: 03/09/2014, 13h53
  2. Réponses: 0
    Dernier message: 29/12/2010, 10h45
  3. Sécurité et autorisation dans la base de registre
    Par Kaneda Shotaro dans le forum C#
    Réponses: 2
    Dernier message: 12/09/2009, 13h51
  4. Enlever la police sécurité du registre apres déconect dom
    Par devlopassion dans le forum Windows
    Réponses: 1
    Dernier message: 06/01/2009, 15h07
  5. Réponses: 2
    Dernier message: 18/01/2008, 23h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo