用C++通过WinAPI在非管理员特权下产生BSOD
Windows有一个"未公开"的蓝屏api:NtRaiseHardError
可以在非管理员特权下产生BSOD
调用该API需要调用者有关机权限
代码示例 (Create BSOD from user mode?):
#include <windows.h>
#pragma comment(lib, "ntdll.lib")
extern "C" NTSTATUS NTAPI RtlAdjustPrivilege(ULONG Privilege, BOOLEAN Enable, BOOLEAN CurrentThread, PBOOLEAN OldValue);
extern "C" NTSTATUS NTAPI NtRaiseHardError(LONG ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStringParameterMask,
PULONG_PTR Parameters, ULONG ValidResponseOptions, PULONG Response);
int main(){
BOOLEAN bl;
ULONG Response;
RtlAdjustPrivilege(19, TRUE, FALSE, &bl);
// 调用NtRaiseHardError需要有SeShutdownPrivilege
NtRaiseHardError(STATUS_ASSERTION_FAILURE, 0, 0, NULL, 6, &Response);
// BSOD
}
运行会立即产生蓝屏,执行前请保存当前工作。