ssdt 随便一个函数入口改90就蓝了

-------------------------------------------------

program Project2;

uses
  Windows;
(*
原作者:不详。据说是逆的smss的代码。
翻译:http://www.138soft.com,lovejingtao@21cn.com.
*)

type
{$Z4}
  _HARDERROR_RESPONSE_OPTION = (
    OptionAbortRetryIgnore,
    OptionOk,
    OptionOkCancel,
    OptionRetryCancel,
    OptionYesNo,
    OptionYesNoCancel,
    OptionShutdownSystem,
    OptionOkNoWait,
    OptionCancelTryContinue
    );
  HARDERROR_RESPONSE_OPTION = _HARDERROR_RESPONSE_OPTION;
{$Z1}

  _UNICODE_STRING = record
    Length: USHORT;
    MaximumLength: USHORT;
    Buffer: PWideChar;
  end;
  UNICODE_STRING = _UNICODE_STRING;
  PUNICODE_STRING = ^_UNICODE_STRING;

  pfnZwRaiseHardError = function(ErrorStatus: Integer;
    NumberOfParameters: ULONG;
    UnicodeStringParameterMask: ULONG; //PUNICODE_STRING;
    Parameters: Pointer;
    ValidResponseOptions: HARDERROR_RESPONSE_OPTION;
    Response: PULONG): Integer; stdcall;

function DebugPrivilege(PName: LPCTSTR; bEnable: BOOL): BOOL;
var
  hToken: THANDLE;
  TokenPrivileges: TOKEN_PRIVILEGES;
  ReturnLength: DWORD;
begin
  Result := False;
  if (not OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES, hToken)) then Exit;

  TokenPrivileges.PrivilegeCount := 1;
  if bEnable then
    TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
  else
    TokenPrivileges.Privileges[0].Attributes := 0;
  LookupPrivilegeValue(nil, PName, TokenPrivileges.Privileges[0].Luid);
  AdjustTokenPrivileges(hToken, FALSE, TokenPrivileges, sizeof(TOKEN_PRIVILEGES), nil, ReturnLength);
  if (GetLastError() <> ERROR_SUCCESS) then Exit;

  CloseHandle(hToken);
  Result := True;
end;

const
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';//NtRaiseHardError需要关机权限
var
  str: UNICODE_STRING;
  args: array[0..2] of THandle;
  x: ULONG;
  hDll: HMODULE;
  ZwRaiseHardError: pfnZwRaiseHardError;
begin
  str.Length := 8;
  str.MaximumLength := 10;
  str.Buffer := 'test';

  args[0] := $12345678;
  args[1] := $87654321;
  args[2] := THandle(@str);
  hDll := GetModuleHandle('ntdll.dll');
  @ZwRaiseHardError := GetProcAddress(hDll, 'ZwRaiseHardError');

  DebugPrivilege(SE_SHUTDOWN_NAME, TRUE);
  ZwRaiseHardError(Integer($C000021A), 3, 4, @args, OptionShutdownSystem, @x);
end.

注意:64位系统请编译为64位EXE。需要管理员权限。

-------------------------------------------------------------------------------------------------------------

uses
  Windows;

function MakeMeCritical(Yes: Boolean): Boolean;
const
  SE_DEBUG_PRIVILEGE = $14;
  SE_PROC_INFO = $1D;
var
  Enabled: PBOOL;
  DllHandle: THandle;
  BreakOnTermination: ULong;
  HR: HRESULT;
  RtlAdjustPrivilege: function(Privilege: ULONG; Enable: BOOL; CurrentThread: BOOL; var Enabled: PBOOL): DWORD; stdcall;
  NtSetInformationProcess: function(ProcHandle: THandle; ProcInfoClass: ULONG; ProcInfo: Pointer;  ProcInfoLength: ULONG): HResult; WINAPI;
begin
  Result := False;
  DllHandle := LoadLibrary('ntdll.dll') ;
  if DllHandle <> 0 then
  begin
     @RtlAdjustPrivilege := GetProcAddress(dllHandle, 'RtlAdjustPrivilege');
     if (@RtlAdjustPrivilege <> nil) then
     begin
       if RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE, True, True, Enabled) = 0 then
       begin
          @NtSetInformationProcess := GetProcAddress(dllHandle, 'NtSetInformationProcess');
          if (@NtSetInformationProcess <> nil) then
          begin
          BreakOnTermination := Ord(Yes);
          HR := NtSetInformationProcess(GetCurrentProcess(), SE_PROC_INFO, @BreakOnTermination, SizeOf(BreakOnTermination));
          Result := HR = S_OK;
          end;
       end;
     end;
     FreeLibrary(DllHandle);
  end
end;

begin
  if MakeMeCritical(True) then
  begin
    //the user cannot termintate the process now
    MessageBoxA(0, PAnsiChar('千万不要从任务管理器结束我,否则马上蓝你MB的屏'), PAnsiChar('Test'), 0);
  end
  else
    MessageBoxA(0, PAnsiChar('Something went wrong'), PAnsiChar('Test'), 0);
end.

参考:http://bbs.2ccc.com/topic.asp?topicid=471293

让Windows蓝屏死机的更多相关文章

  1. 最新更新的Windows 10切换蓝牙连接开关会导致蓝屏死机

    目前已经升级到 Windows 10 Version 1809 版的用户们正在努力发掘新版本还没有被公开发现的错误问题. 比如此前的.ZIP 格式的压缩包解压时无法正常替换,微软已承认该问题并称将在后 ...

  2. 在windows10中启动VmWare时,只要一启动虚拟机,电脑就会蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION)

    在windows10中启动VmWare时,只要一启动虚拟机,电脑就会蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION) 没错就是这个,绿色的死亡按钮 原因: 第一种:windows ...

  3. win7蓝屏死机0x0000003B错误蓝屏故障解决

    win7蓝屏死机0x0000003B错误蓝屏故障解决 刚才一个朋友问我:电脑蓝屏了怎么办. 我问他要了电脑的截图,自己看了错误代码:0x0000003B 搜索资料,查询了一番.都是说电脑中病毒或者是系 ...

  4. Windows蓝屏后产生的.dmp分析原因

    Windows系统电脑出现蓝屏后都会自动重启,重启后电脑屏幕会提示蓝屏的相关信息,此时如果你没有来得及查看,你也可以进入windows7的“事件查看器”(位置为:控制面板--系统和安全--管理工具-- ...

  5. windows蓝屏错误小全

    作者:siyizhu 日期:2005-11-27 字体大小: 小 中 大  引用内容 0 0x00000000 作业完成.  1 0x00000001 不正确的函数.  2 0x00000002 系统 ...

  6. Windows蓝屏dump文件查看器(转)

    Windbg-分析Windows蓝屏原因利器[转]下载地址先声明下,虽然用windbg诊断蓝屏之前网络上已经有人发过教程了,但就我而言, 学会使用windbg来诊断蓝屏也算是自己的原创吧.以前看一个微 ...

  7. 简单查看windows蓝屏原因

    相信各位在使用windows(xp.7.8.1.10...)过程中都遇到过蓝屏的情况,而蓝屏时,系统会将其记录起来,并追踪到引起蓝屏的程序,以下内容将简单介绍一下如何查看引起windows蓝屏的原因: ...

  8. windows蓝屏代码大全及常见蓝屏解决方案

    对于以下的代码查询建议使用ctrl+F查询,而且很多蓝屏与黑屏的问题多是最近操作引起的,例如更新驱动,安装新的硬件.软件--把相关的配置调到最近的正常状况大多可以解决,确实不行时方可考虑重装系统,解决 ...

  9. 记一次Windows蓝屏分析

    大半夜收到此类信息,应该是让所有系统管理员最头大的事情了 首先我快速通过iDRAC,发现服务器发生了重启操作,并得到相关日志信息 通过Dell的官方解释,确定了该问题是OS层面的异常导致.打开Wind ...

随机推荐

  1. Global::validateEmail

    /***************************************************************** (C) Copyright DENTSPLY Internatio ...

  2. 修改UI中的值,无反应解决办法

    var targetObj = $("<input name='mydate' class='easyui-datebox'>").appendTo("#id ...

  3. WPF 心形线算法

    今天在网上查找下心形算法公式,自己便按照公式写下来标记在博客,主要是方便以后查看! private int maxStep = 520; private double radius; private ...

  4. [转] 浅谈Microsoft MVP

    微软MVP,这个自1993 年开始在社群上出现的计划(MVP Award Program),目前在全球已经累积超过5,000 人,其中在台湾已经有一百多人了,包括我在内,这个计画现在已经成为以微软技术 ...

  5. 表达式语言之ongl表达式

    OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方 ...

  6. vim使用手册

    1. 关于Vim 1.1 Vim的几种模式 2. 启动Vim 3. 文档操作 4. 光标的移动 4.1 基本移动 4.2 翻屏 4.3 标记 5. 插入文本 5.1 基本插入 5.2 改写插入 6. ...

  7. TTL值的含义以及与域名DNS TTL值的区别

    TTL值的含义以及与域名TTL值的区别 本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/201004/ttl-yuyuming-t ...

  8. 扒一扒各大电商网站的m站都用的什么前端技术输入日志标题

    凡客首页使用Swiper和zepto,没有使用jquery , 静态首页+js交互,  资源加载使用 lazyLoad X-AspNet-Version: 4.0.30319 X-AspNetMvc- ...

  9. 团队博客作业Week1 Team Homework #3软件工程在北航

    这次我们采访了一位大四的学姐,让她简单地谈了谈去年学习软件工程的经历和感受. 在完成软件工程大作业的过程中,由于计划安排与实际脱节,导致时间前松后紧,平均每周花在这门课上的时间大约有8个小时. 项目完 ...

  10. MITK Tutorial

      MITK 设计来使用模块化和高度的代码重用,既能作为 pure software library或complete application framework.它的结构概览图如下: ITK:提供分 ...