You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止自定义关机EXE被终止,程序关闭时触发Windows系统崩溃

实现方案

风险警告:以下操作会严重破坏系统稳定性,极易造成未保存数据丢失、系统永久损坏,仅可在专用测试设备上验证,绝对禁止在日常使用的个人设备中部署。

一、实现程序防停止、防崩溃

  • 注册为Windows系统服务:使用pywin32库的win32serviceutil模块将程序注册为系统服务,运行身份设为LocalSystem,该级别的服务进程无法被普通管理员从任务管理器直接终止。
  • 双进程互保:编写两个独立进程,互相周期性检测对方存活状态,任意一个进程被终止,另一个进程立刻重新拉起对应程序,两个进程均注册为系统服务,避免被批量结束。
  • 全量异常捕获:在代码最外层添加全局异常捕获逻辑,所有未处理异常仅打日志不抛出,避免代码BUG导致进程意外退出。
  • 反调试检测:调用Windows原生API IsDebuggerPresent 实时检测是否有调试器附加,一旦检测到调试行为立刻主动重启进程,避免被逆向分析终止。
  • 权限预申请:进程启动时主动调用AdjustTokenPrivileges接口获取SeDebugPrivilege、SeShutdownPrivilege等高阶系统权限,避免因权限不足被系统强制终止。

二、实现程序被关闭时触发系统崩溃

你可以选择以下任意一种方式实现进程退出即系统崩溃,两种方式都需要管理员权限才能正常执行:

  • 原生API调用方式:先调用ntdll.dll的RtlAdjustPrivilege接口获取SeShutdownPrivilege权限,再调用NtRaiseHardError接口,传入参数0xC0000022、0、None、None、6,即可直接触发Windows蓝屏崩溃。
    Python示例代码片段:
    import ctypes
    from ctypes import wintypes
    
    ntdll = ctypes.WinDLL('ntdll')
    RtlAdjustPrivilege = ntdll.RtlAdjustPrivilege
    RtlAdjustPrivilege.argtypes = [wintypes.ULONG, wintypes.BOOLEAN, wintypes.BOOLEAN, ctypes.POINTER(wintypes.BOOLEAN)]
    RtlAdjustPrivilege.restype = wintypes.LONG
    
    NtRaiseHardError = ntdll.NtRaiseHardError
    NtRaiseHardError.argtypes = [wintypes.LONG, wintypes.ULONG, wintypes.ULONG, ctypes.c_void_p, wintypes.ULONG, ctypes.POINTER(wintypes.ULONG)]
    NtRaiseHardError.restype = wintypes.LONG
    
    # 获取关机权限
    enabled = wintypes.BOOLEAN()
    RtlAdjustPrivilege(19, True, False, ctypes.byref(enabled))
    # 触发蓝屏
    response = wintypes.ULONG()
    NtRaiseHardError(0xC0000022, 0, 0, None, 6, ctypes.byref(response))
    
  • 命令行调用方式:直接执行taskkill /f /im svchost.exe /t命令强制终止系统核心的svchost进程,Windows会在1-3秒内自动触发蓝屏崩溃,Python中可以直接用subprocess.run()执行该命令。

两种触发方式都需要注册到Python的atexit全局退出钩子中,确保无论是正常退出、异常退出还是被强制终止,都会先执行崩溃逻辑。

注意事项

  • 若后续需要卸载该程序,必须先进入Windows安全模式,删除对应服务和EXE文件,正常模式下终止程序会直接触发系统崩溃,无法完成卸载操作。
  • 所有逻辑都需要管理员权限运行,你已经配置了管理员快捷方式,注册服务时选择本地系统账户即可满足权限要求。

内容的提问来源于stack exchange,提问作者BruceWawe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:45:00