begin process at 2012 02 11 22:39:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

Détection du droit admin du process en cours.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Détection du droit admin du process en cours.

dimanche 19 septembre 2004 à 21:11:10 | Détection du droit admin du process en cours.

jlbrd

Bonjour, dans mon prog certains traitements nécessitent les droits admin. Comme tester que le programme possède ces droits ou pas ?
dimanche 19 septembre 2004 à 21:27:47 | Re : Détection du droit admin du process en cours.

Nebula

Membre Club
Essaie d'ouvrir une clé dans HKEY_LOCAL_MACHINE en écriture, si l'utilisateur n'est pas admin çà devrait échouer.
dimanche 19 septembre 2004 à 21:54:09 | Re : Détection du droit admin du process en cours.

BruNews

Administrateur CodeS-SourceS
Ici je charge en dynamique les fonctions pour que puisse tourner sur les winbebes. Tu adaptes en + simple si tu vises seulement les noyaux NT.


typedef BOOL (__stdcall *pOPENPROCESSTOKEN) (HANDLE,DWORD,PHANDLE);
typedef BOOL (__stdcall *pGETTOKENINFORMATION) (HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,PDWORD);
typedef BOOL (__stdcall *pALLOCINITSID) (PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*);
typedef BOOL (__stdcall *pEQUALSID) (PSID,PSID);
typedef PVOID (__stdcall *pFREESID) (PSID);

DWORD IsUserAdmin() // RETOURNE != 0 SI APPELANT EST ADMIN
{
HANDLE htoken;
BYTE infos[1024];
PTOKEN_GROUPS pgroups = (PTOKEN_GROUPS)infos;
DWORD dwlen;
PSID psidAdmins;
SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY;
BOOL b = 0;
pOPENPROCESSTOKEN pOPTK;
pGETTOKENINFORMATION pGTINF;
pALLOCINITSID pALLIS;
pEQUALSID pEQSID;
pFREESID pFRSD;
HINSTANCE hdll = LoadLibrary("Advapi32.dll");
if(!hdll) return 0;
pOPTK = (pOPENPROCESSTOKEN) GetProcAddress(hdll, "OpenProcessToken");
if(!pOPTK) goto relDll;
pGTINF = (pGETTOKENINFORMATION) GetProcAddress(hdll, "GetTokenInformation");
if(!pGTINF) goto relDll;
if(!pOPTK(GetCurrentProcess(),TOKEN_READ,&htoken)) goto relDll;
b = pGTINF(htoken,TokenGroups,infos, 1024, &dwlen);
CloseHandle(htoken);
if(b) goto relDll;
pALLIS = (pALLOCINITSID) GetProcAddress(hdll, "AllocateAndInitializeSid");
if(!pALLIS) goto relDll;
pEQSID = (pEQUALSID) GetProcAddress(hdll, "EqualSid");
if(!pEQSID) goto relDll;
pFRSD = (pFREESID) GetProcAddress(hdll, "FreeSid");
if(!pFRSD) goto relDll;
if(!pALLIS(&siaNtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &psidAdmins)) goto relDll;
for(UINT x=0; x < pgroups->GroupCount; x++) {
if(pEQSID(psidAdmins, pgroups->Groups[x].Sid)) {b = 1; break;}
}
pFRSD(&psidAdmins);
relDll: FreeLibrary(hdll);
return b;
}


ciao...
BruNews, MVP VC++


Cette discussion est classée dans : process, droit, cours, détection, admin


Répondre à ce message

Sujets en rapport avec ce message

j'ai besoin d'un cours detaillé en c++ [ par _coolnick ] pouvez vous me fournir un cours complet concernant la coo en c++ merci Détection de périphérique [ par vinc ] Bonjour,Je souhaite créer un programme de détection de périphérique Hard. Du style Carte Réseaux, carte vidéo ...Pouvez-vous m'aider sur ce sujet car Menu contextuel avec le bouton droit [ par header ] Voila mon problème : G une ListBox et j'aimerai lui attacher un menu contextuel c'est àdire que lorsque je séléctionee quelquechose dedns en faisant u "killer" une application Excel en cours d'execution [ par Corwyn ] Bonjourje cherche a "killer" ou simplement fermer les documents ouverts dans Excel. Car, je voudrais supprimer un fichier mais etant ouvert, c'est imp "killer" une application Excel en cours d'execution [ par Corwyn ] bonjourje cherche a "killer" ou simplement fermer les documents ouverts dans Excel. Car je voudrais supprimer un fichier mais etant ouvert, c'est impo Cours sur GTK en création... [ par NettoyeurFantome ] Je suis en train de créer un cours sur GTK+ à mis chemin entre un tutoriel et un manuel de référence. Y'a-t-il des personnes qui veulent m'aider ? e-m SendMessage() & WM_KEYUP [ par Manson ] Salut a tous,voila, j'ai un process qui tourne en multithread pour chopper les touches utiliser et j'aimerai qu'il les envoi a la fenetre principale ( process [ par rodrigos ] liste process [ par rodrigos ] Comment peut-on connaitre la liste des process en cours et le cas échéant en arrêter un.je travaille sous Nt4merci Status Process d une application windows [ par Trinita16 ] est il possible de savoir le status d une application qui tourne en tache de fond sous windows ? je m explique, je voudrais savoir si mon application


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales