吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 602|回复: 5
收起左侧

[求助] c++如何读取HKEY_LOCAL_MACHINE\SECURITY下的键值

  [复制链接]
pananning 发表于 2024-7-25 04:22
本帖最后由 pananning 于 2024-7-25 04:29 编辑

通过此函数设置了权限
[C++] 纯文本查看 复制代码
BOOL Privilege::SetPrivilege(HANDLE hToken, LPCTSTR lpszPrivilege, BOOL bEnablePrivilege)
{
    TOKEN_PRIVILEGES tp;
    LUID luid;

    if (!LookupPrivilegeValue(NULL, lpszPrivilege, &luid)) 
    {
        DWORD result = GetLastError();
        PrintErrorMessage(result,TEXT("LookupPrivilegeValue error: "));
        return false;
    }

    tp.PrivilegeCount = 1;
    tp.Privileges[0].Luid = luid;
    tp.Privileges[0].Attributes = bEnablePrivilege ? SE_PRIVILEGE_ENABLED : 0;

    if (!AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, (PDWORD)NULL))
    {
        DWORD result = GetLastError();
        PrintErrorMessage(result, TEXT("AdjustTokenPrivileges error: "));
        return false;
    }

    if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
    {
        std::wcerr << L"The token does not have the specified privilege." << std::endl;
        return false;
    }

    return true;
}
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &_hToken);
    if (!SetPrivilege(_hToken, SE_BACKUP_NAME, TRUE) || !SetPrivilege(_hToken, SE_RESTORE_NAME, TRUE))
    {
        _tprintf(TEXT("SetPrivilege failed.\n"));
        CloseHandle(_hToken);
    }

其他路径的键值都可以读取,就HKEY_LOCAL_MACHINE\SECURITY不行

免费评分

参与人数 3吾爱币 +1 热心值 +3 收起 理由
vmoranv + 1 我很赞同!
dummyy + 1 我很赞同!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2024-7-25 08:17
RegWorkshop也看不了,只有system有权限查看
Ramin2027 发表于 2024-7-25 09:30
DQQQQQ 发表于 2024-7-25 10:19
我记得这个和SAM一样的权限问题。 先用GetNameSecurityInfo获旧权限。然后用BuildExplicaiAccessWithName构造一个新的属性。在SetEntruesInAcl设置权限,最后SetNamedSeructiynfo设置回旧权限。 代码百度一堆。但是貌似这个方法,改了权限没法恢复回去。
 楼主| pananning 发表于 2024-7-25 15:34

是权限问题,nsudo提权可以查看,不知道用c++怎么直接实现
 楼主| pananning 发表于 2024-7-25 15:35
DQQQQQ 发表于 2024-7-25 10:19
我记得这个和SAM一样的权限问题。 先用GetNameSecurityInfo获旧权限。然后用BuildExplicaiAccessWithName构 ...

多谢,我去查查
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表