当前位置:首页 > Windows程序 > 正文

HOOK API(二)

2021-05-25 Windows程序

bool AdjustPrivileges() {

    HANDLE hToken;

    TOKEN_PRIVILEGES tp;

    TOKEN_PRIVILEGES oldtp;

    DWORD dwSize=sizeof(TOKEN_PRIVILEGES);

    LUID luid;

    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {

        if (GetLastError()==ERROR_CALL_NOT_IMPLEMENTED) return true;

        else return false;

    }

    if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid)) {

        CloseHandle(hToken);

        return false;

    }

    ZeroMemory(&tp, sizeof(tp));

    tp.PrivilegeCount=1;

    tp.Privileges[0].Luid=luid;

    tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;

    /* Adjust Token Privileges */

    if (!AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), &oldtp, &dwSize)) {

        CloseHandle(hToken);

        return false;

    }

    // close handles

    CloseHandle(hToken);

    return true;

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70627.html