如今让电脑蓝屏的方法数不胜数,但基本上都是通过破坏系统关键进程或数据导致的蓝屏,本篇文章是通过内核函数让程序自己发送蓝屏请求
KeBugCheckEx(wdm.h)
NTKERNELAPI
DECLSPEC_NORETURN
VOID
NTAPI
KeBugCheckEx(
_In_ ULONG BugCheckCode,
_In_ ULONG_PTR BugCheckParameter1,
_In_ ULONG_PTR BugCheckParameter2,
_In_ ULONG_PTR BugCheckParameter3,
_In_ ULONG_PTR BugCheckParameter4
);
该函数的作用是使计算机系统主动蓝屏,可以自定义蓝屏代码,不过这个函数只能在驱动程序里运行
我们先试试看是不是真的可以蓝屏
新建一个驱动项目并写入如下代码
若不知道怎么搭建驱动编程环境,可以参考这篇文章:从零配置vs2017驱动编程环境(保姆级教程)(1)-CSDN博客
#include <ntifs.h>
NTSTATUS DriverUnload(PDRIVER_OBJECT pDriver)
{
return STATUS_SUCCESS;
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegUnicodeString)
{
pDriver->DriverUnload = DriverUnload;
KeBugCheckEx(0x114514, 0x114514, 0x114514, 0x114514, 0x114514);
return STATUS_SUCCESS;
}
再将这个驱动安装到测试机里
可以看到我们已经修改了蓝屏代码,函数的五个参数分别代表最后的五个蓝屏代码