【发布时间】:2018-06-22 22:52:04
【问题描述】:
我了解java和python,但是任何名称中包含C的语言都很难理解和学习。最近我试图使用 NtRaiseHardError 在 Windows 中创建 BSOD,在 c++ 中尝试几次(不成功)后,我转向了 c#。
使用来自here 的代码我能够制作一个程序并导致蓝屏死机。后来我试图完全理解代码,但我无法理解 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);
【问题讨论】: