【API】Windows 程序提升权限函数

发布时间:2020-06-28 11:16:02 作者:HACK007
来源:网络 阅读:2241
BOOL EnableShutdownPrivilege()
{
    HANDLE hProcess = NULL;
    HANDLE hToken = NULL;
    LUID uID = {0};
    TOKEN_PRIVILEGES stToken_Privileges = {0};

    hProcess = ::GetCurrentProcess(); //获取当前应用程序进程句柄

    if(!::OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken)) //打开当前进程的访问令牌句柄(OpenProcessToken函数调用失败返回值为零)
    {
        return FALSE;
    }
    if(!::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&uID)) //获取权限名称为"SeShutdownPrivilege"的LUID(LookupPrivilegeValue函数调用失败返回值为零)
    {
        return FALSE;
    }
    stToken_Privileges.PrivilegeCount = 1; //欲调整的权限个数
    stToken_Privileges.Privileges[0].Luid = uID; //权限的LUID
    stToken_Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; //权限的属性,SE_PRIVILEGE_ENABLED为使能该权限

    if(!::AdjustTokenPrivileges(hToken,FALSE,&stToken_Privileges,sizeof stToken_Privileges,NULL,NULL)) //调整访问令牌里的指定权限(AdjustTokenPrivileges函数调用失败返回值为零)
    {
        return FALSE;
    }

    if(::GetLastError() != ERROR_SUCCESS) //查看权限是否调整成功
    {
        return FALSE;
    }
    ::CloseHandle(hToken);
    return TRUE;
}
推荐阅读:
  1. socket API
  2. windows_learn 001 域(AD)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

权限 进程 dow

上一篇:linux显示找不到文件异常怎么解决

下一篇:java使用注释的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》