Problème fonction :s

Résolu
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 17 juin 2006 à 13:15
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 17 juin 2006 à 16:02
Voici ma fonction sensé récupérer le nom d'un processus, l'ennui c'est que GetKernelObjetSecurity() renvoie tjrs 0, donc il y à une erreur, mais je ne la trouve pas. Pouvez vous m'aider svp?

BOOL GetUserProcess(DWORD dwIDProc){
     HANDLE haProcess;
     PSECURITY_DESCRIPTOR psdRecup;
     SID_NAME_USE snuName;
     BOOL boOwner;
     DWORD dwSize;
     PSID psid;
     char * szName;
     DWORD dwNameSize = 1000;
    
     szName = (char*)GlobalAlloc(GMEM_FIXED,1000);
     psdRecup = (PSECURITY_DESCRIPTOR)GlobalAlloc(GMEM_FIXED,1000);
    
     haProcess = (READ_CONTROL,TRUE,&dwIDProc);
     if(haProcess == NULL){CloseHandle(haProcess); return FALSE;}
    
     if((GetKernelObjectSecurity(haProcess,OWNER_SECURITY_INFORMATION,psdRecup,1000,&dwSize)) == 0 ){CloseHandle(haProcess); return FALSE;}
    
     GetSecurityDescriptorOwner(psdRecup,&psid, &boOwner);
    
     LookupAccountSid(NULL,psid,szName,&dwNameSize,NULL,NULL,&snuName);
    
     MessageBox(NULL, szName, "Owner Name :", 0x40);
    
     GlobalFree(szName);
     GlobalFree(psdRecup);
     return TRUE;
}

merci d'avance.

8 réponses

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
17 juin 2006 à 16:02
Yeeeeepeeeeeeeeee j'ai trouvé,

Pour ceux que cela intéresse : dans la msdn il est mis que mm si on a pas besoin de connaitre le domaine, si aucun nom d'utilisateur correspond il y place le nom de domaine récupéré (en gros) et donc LookupAccountSid(NULL,psid,szName,&dwNameSize,NULL,NULL,&snuName);

doit être remplacer par :

LookupAccountSid(NULL,psid,szName,&dwNameSize,szDomain,&dwSizeDom,&snuName);
   
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
17 juin 2006 à 13:39
haProcess = (READ_CONTROL,TRUE,&dwIDProc);

Elle est bizarre cette ligne...

ULARGE_INTEGERJokyQi=QI("Joky");
0
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
17 juin 2006 à 13:41
tu peux pt'être utiliser la fonction suivante juste après le plantage ;-)
DWORDGetLastError(void);
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/getlasterror.asp

tu as la liste des codes d'erreur sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp


bonne chance, et reviens donner un peu de feedback si t'as du nouveau

++24K
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 juin 2006 à 13:51
Effectivement la ligne est bizarre. Je pense que le compilo considère que c'est équivalent a ca:
haProcess = &dwIDProc;
A mon avis tu voulais appeler une fonction, sauf que t'as oublié de mettre le nom de de la fonction
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
17 juin 2006 à 13:57
MDR oui c'est normalement OpenProcess mais la fonction ne fonctionne de toute façon pas :s
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
17 juin 2006 à 14:01
La fonction LookupAccountSid() renvoie une erreur .
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
17 juin 2006 à 14:03
Elle ne renvoie mm pas 0, elle fait planter le programme et je ne sais pas pourquoi.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 juin 2006 à 15:54
C'est bizzard. OpenProcess n'a pas de DWORD* comme troisième paramètre. Pourquoi fait-tu &dwIDProc?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
Rejoignez-nous