OpenProcessToken,LookupPrivilegeValue,AdjustTokenPrivileges提升进程权限
对于一些运行的程序,我们希望它们能尽可能的像操作系统能做的事情一样多,但是操作系统对于每个进程都有权限划分,那么此时我们就需要对期望中的进程进行提升权限,查看MSDN和一些其他资料之后,写了个可用于提升进程权限的函数,可被用在程序中直接调用。代码如下:
//传入Privileges参数,用于取得想要获取的权限 //查看MSDN的LookupPrivilegeValue函数宏定义权限表可自行修改; BOOL GetPrivilege(TCHAR* Privileges) { HANDLE hToken; TOKEN_PRIVILEGES tkp; LUID namevalue; if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { return FALSE; } if(!LookupPrivilegeValue(NULL, Privileges, &namevalue)) { CloseHandle(hToken); return FALSE; } tkp.PrivilegeCount = 1; tkp.Privileges[0].Luid = namevalue; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; if(!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL)) { CloseHandle(hToken); return FALSE; } CloseHandle(hToken); if(GetLastError() == ERROR_NOT_ALL_ASSIGNED) { return FALSE; } return TRUE; }
本文出自 “开心就好” 博客,请务必保留此出处http://11611854.blog.51cto.com/5414664/1662560
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。