小编Saj*_*rim的帖子

从进程中删除管理员权限

在这篇伟大的MSDN文章的帮助下,我的第一个想法是简单地检查进程是否使用提升的Administrator组,并使用AdjustTokenGroups()我将Administrator组设置为SE_GROUP_USE_FOR_DENY_ONLY.不幸的是,我们无法修改当前正在运行的进程的管理员组,因为它还具有该SE_GROUP_MANDATORY属性,这使得它无法进行更改.

MSDN文档有这样的说法:

AdjustTokenGroups函数无法禁用具有结构中SE_GROUP_MANDATORY属性的组TOKEN_GROUPS.请CreateRestrictedToken改用.

所以,我完成了以下代码来实现这一目标;

bool _IsNewProcessLaunched()
{
    HANDLE hToken = NULL;   
    bool hasRestarted = false;

    if (!OpenProcessToken( GetCurrentProcess(), 
        TOKEN_ASSIGN_PRIMARY | TOKEN_QUERY | TOKEN_DUPLICATE | TOKEN_ADJUST_GROUPS, 
        &hToken )) 
    {
        return hasRestarted;
    }

    PSECURITY_DESCRIPTOR pSID = NULL;
    SID_IDENTIFIER_AUTHORITY SIDAuth = SECURITY_NT_AUTHORITY;

    if(! AllocateAndInitializeSid( &SIDAuth, 2,
        SECURITY_BUILTIN_DOMAIN_RID,
        DOMAIN_ALIAS_RID_ADMINS,
        0, 0, 0, 0, 0, 0,
        &pSID) ) 
    {
        CloseHandle(hToken);
        hToken = NULL;
        return hasRestarted;
    }

    BOOL isAdmin = …
Run Code Online (Sandbox Code Playgroud)

winapi uac privilege-elevation access-token elevated-privileges

5
推荐指数
1
解决办法
2702
查看次数

OpenCV GPU(CUDA)模板匹配和FFT实现

我在GTX690上使用opencv GPU :: matchTemplate().

我在内部检查了函数,发现gpu :: matchTemplate()在这个过程中没有使用任何FFT,而它的CPU对应物却没有.

我的问题是,在GPU中不使用FFT的原因是什么?

opencv cuda gpu fft matchtemplate

3
推荐指数
1
解决办法
2747
查看次数