标签:buffer 判断 free seh ++ pre group security groups
BOOL IsAdmin() { HANDLE hAccessToken; BYTE * InfoBuffer = new BYTE[1024]; PTOKEN_GROUPS ptgGroups; DWORD dwInfoBufferSize; PSID psidAdministrators; SID_IDENTIFIER_AUTHORITY siaNtAuthority = SECURITY_NT_AUTHORITY; if(!OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hAccessToken)) { delete InfoBuffer; return FALSE; } if(!GetTokenInformation(hAccessToken,TokenGroups,InfoBuffer,1024,&dwInfoBufferSize)) { delete InfoBuffer; CloseHandle(hAccessToken); return FALSE; } CloseHandle(hAccessToken); if(!AllocateAndInitializeSid(&siaNtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0,0,0,0,0,0, &psidAdministrators)) { delete InfoBuffer; return FALSE; } ptgGroups = (PTOKEN_GROUPS)InfoBuffer; for(UINT i = 0; i < ptgGroups->GroupCount; i++) { if(EqualSid(psidAdministrators,ptgGroups->Groups[i].Sid)) { FreeSid(psidAdministrators); delete InfoBuffer; return TRUE; } } return FALSE; }
vc判断当前用户是否具有administrator 权限代码
标签:buffer 判断 free seh ++ pre group security groups
原文地址:http://www.cnblogs.com/xuandi/p/6839381.html