导读
易语言5.6完美版,可静态编译,绿色无后门

学习易语言 讲究的是系统,如果你正在四处闲逛,你懂的永远是皮毛! 觅风论坛正在为每个困惑的对易语言 详细

[c++] C++ 提升自身进程权限到调试级别写法源码

[复制链接]

微信扫一扫 分享朋友圈

小一 发表于 2022-4-2 15:28:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
TOKEN_PRIVILEGES tp;
                tp.PrivilegeCount = 1;
                int res = LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
                if (!res)
                {
                        int err = ::GetLastError();
                        TRACE(_T("LookupPrivilegeValue(SE_DEBUG_NAME) Fail!!"));
                }

                typedef int(__stdcall *PRtlAdjustPrivilege)(ULONG, BOOLEAN, BOOLEAN, PBOOLEAN);
                PRtlAdjustPrivilege RtlAdjustPrivilege =
                        (PRtlAdjustPrivilege)GetProcAddress(GetModuleHandle(_T("ntdll")), "RtlAdjustPrivilege");
                while (!RtlAdjustPrivilege)
                {
                        int err = ::GetLastError();
                        TRACE(_T("GetProcAddress(ntdll.dll::RtlAdjustPrivilege) Fail!!"));

                }
                // 实验了下 提权成功了 但是返回值还是NULL 如果这个时候验证返回值将不准确了.
                BOOLEAN enabled = 0;
                res = RtlAdjustPrivilege(tp.Privileges[0].Luid.LowPart, TRUE, FALSE, &enabled);//...LowPart   = 0x14


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1