weixq1

进程添加 SE_DEBUG_NAME 权限

SE_DEBUG_NAME 权限作用

赋予进程对其他进程的完全访问权限,允许调试或修改任意进程的内存,是系统安全机制中的高权限标识

添加权限用到的接口

  • LookupPrivilegeValue 检索指定系统上用于本地表示指定特权名称的本地唯一标识符(LUID)。先用该函数获取 SE_DEBUG_NAME 的 luid
  • OpenProcessToken 打开与进程关联的访问令牌
  • AdjustTokenPrivileges 函数启用或禁用指定访问令牌中的特权。 启用或禁用访问令牌中的特权需要 TOKEN_ADJUST_PRIVILEGES 访问权限。所以在 OpenProcess 的时候需要指定 TOKEN_ADJUST_PRIVILEGES 权限

代码实现

bool RemoveDebugPrivileges(HANDLE hProcess)
{
    TOKEN_PRIVILEGES Debug_Privileges;

    if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Debug_Privileges.Privileges[0].Luid))
    {
        HANDLE hToken = 0;
        if (OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken))
        {
            Debug_Privileges.Privileges[0].Attributes = 0;
            Debug_Privileges.PrivilegeCount = 1;

            AdjustTokenPrivileges(hToken, FALSE, &Debug_Privileges, 0, NULL, NULL);
            CloseHandle(hToken);
            return true;
        }
    }

    return false;
}

posted on 2025-06-17 18:07  随便挖挖  阅读(46)  评论(0)    收藏  举报

导航