为了账号安全,请及时绑定邮箱和手机立即绑定

有人可以解释一下 RtlAdjustPrivilege

有人可以解释一下 RtlAdjustPrivilege

C#
缥缈止盈 2021-08-29 18:20:55
我了解 java 和 python,但是任何名称中包含 C 的语言都很难理解和学习。最近我试图使用 NtRaiseHardError 在 windows 中创建 BSOD,在 c++ 中尝试了几次(不成功)之后,我转向了 c#。使用这里的代码,我能够制作一个程序并导致 bsod。后来我试图完全理解代码,但我无法理解 RtlAdjustPrivilege 在做什么。我看到这是某种权限更改,但是在程序运行时,尽管我使用的是用户帐户,但我没有看到管理员密码提示,因此我相信它不会升级为管理员权限。如果有人知道这个函数到底是做什么的或者它是如何工作的,请解释一下。这是它的实现方式:要导入它:[DllImport("ntdll.dll")]private static extern uint RtlAdjustPrivilege(    int Privilege,    bool bEnablePrivilege,    bool IsThreadPrivilege,    out bool PreviousValue);稍后使用它:RtlAdjustPrivilege(19, true, false, out bool previousValue);
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

19 is SE_SHUTDOWN_PRIVILEGE- 在wdm.h 中声明。

RtlAdjustPrivilege打开当前进程(如果IsThreadPrivilege := false)或当前线程(如果IsThreadPrivilege := true)令牌,然后调用ZwAdjustPrivilegeTokenAdjustTokenPrivileges是这个 api 上的薄壳),最后关闭打开的令牌。

ZwAdjustPrivilegeTokenAdjustTokenPrivileges)功能启用或禁用特权在指定的访问令牌。但特权必须已经在令牌中


查看完整回答
反对 回复 2021-08-29
  • 1 回答
  • 0 关注
  • 575 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信