让Windows蓝屏死机
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蓝屏死机的更多相关文章
- 最新更新的Windows 10切换蓝牙连接开关会导致蓝屏死机
目前已经升级到 Windows 10 Version 1809 版的用户们正在努力发掘新版本还没有被公开发现的错误问题. 比如此前的.ZIP 格式的压缩包解压时无法正常替换,微软已承认该问题并称将在后 ...
- 在windows10中启动VmWare时,只要一启动虚拟机,电脑就会蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION)
在windows10中启动VmWare时,只要一启动虚拟机,电脑就会蓝屏死机(终止代码:SYSTEM_SERVICE_EXCEPTION) 没错就是这个,绿色的死亡按钮 原因: 第一种:windows ...
- win7蓝屏死机0x0000003B错误蓝屏故障解决
win7蓝屏死机0x0000003B错误蓝屏故障解决 刚才一个朋友问我:电脑蓝屏了怎么办. 我问他要了电脑的截图,自己看了错误代码:0x0000003B 搜索资料,查询了一番.都是说电脑中病毒或者是系 ...
- Windows蓝屏后产生的.dmp分析原因
Windows系统电脑出现蓝屏后都会自动重启,重启后电脑屏幕会提示蓝屏的相关信息,此时如果你没有来得及查看,你也可以进入windows7的“事件查看器”(位置为:控制面板--系统和安全--管理工具-- ...
- windows蓝屏错误小全
作者:siyizhu 日期:2005-11-27 字体大小: 小 中 大 引用内容 0 0x00000000 作业完成. 1 0x00000001 不正确的函数. 2 0x00000002 系统 ...
- Windows蓝屏dump文件查看器(转)
Windbg-分析Windows蓝屏原因利器[转]下载地址先声明下,虽然用windbg诊断蓝屏之前网络上已经有人发过教程了,但就我而言, 学会使用windbg来诊断蓝屏也算是自己的原创吧.以前看一个微 ...
- 简单查看windows蓝屏原因
相信各位在使用windows(xp.7.8.1.10...)过程中都遇到过蓝屏的情况,而蓝屏时,系统会将其记录起来,并追踪到引起蓝屏的程序,以下内容将简单介绍一下如何查看引起windows蓝屏的原因: ...
- windows蓝屏代码大全及常见蓝屏解决方案
对于以下的代码查询建议使用ctrl+F查询,而且很多蓝屏与黑屏的问题多是最近操作引起的,例如更新驱动,安装新的硬件.软件--把相关的配置调到最近的正常状况大多可以解决,确实不行时方可考虑重装系统,解决 ...
- 记一次Windows蓝屏分析
大半夜收到此类信息,应该是让所有系统管理员最头大的事情了 首先我快速通过iDRAC,发现服务器发生了重启操作,并得到相关日志信息 通过Dell的官方解释,确定了该问题是OS层面的异常导致.打开Wind ...
随机推荐
- openerp学习笔记 自定义小数精度(小数位数)
小数位数标识定义: lx_purchase/data/lx_purchase_data.xml <?xml version="1.0" encoding="utf- ...
- HDFS命令行操作
启动后可通过命令行使用hadoop. (1)所有命令 (先将$HADOOP_HOME/bin加入到.bashrc的$PATH变量中) [html] view plaincopy [hadoop@nod ...
- 【Go】为什么用go; Golang Erlang 前世今生
给自己一条退路,再次比较Erlang和Golang 2014-6-28 陈叶皓 chenyehao@gmail.com 雨天的周末,适合码字的时节... 一年前我开始学习go语言的时候,如获至宝,既有 ...
- Eclipse C/C++开发环境搭建
1 Eclipse的安装 到http://java.sun.com/j2se/1.5.0/download.jsp 下载JRE安装: 到http://eclipse.org下载Eclipse安装.(这 ...
- matlab实现高斯消去法、LU分解
朴素高斯消去法: function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) ...
- [SC] OpenSCManager FAILED 1722
在服务器A(windows server 2008 r2)执行如下命令访问远端服务器B(windows server 2003)的服务运行状况: sc \\servername query " ...
- linux-CentOS6.4下安装oracle11g详解
参考地址:http://dengqsintyt.iteye.com/blog/1991930
- 清橙A1363. 水位 - 清华大学2012年信息学优秀高中学子夏令营
问题描述 有一个正方形的地区,该地区特点鲜明:如果把它等分为N×N个小正方形格子的话,在每个格子内的任意地点的地表高度是相同的,并且是一个0到M之间的整数.正方形地区的外部被无限高的边界包围. 该地区 ...
- 3529: [Sdoi2014]数表 - BZOJ
Description 有一张N×m的数表,其第i行第j列(1 < =i < =n,1 < =j < =m)的数值为能同时整除i和j的所有自然数之和.给定a,计算数表中不大于a ...
- 查看系统网络连接打开端口、系统进程、DOS打开文件
问题描述: DOS查看系统网络连接打开端口.打开的服务 问题解决: (1)DOS查看系统网络连接打开端口 注: 使用 netstat 命令,可以查看系统打开的端口 (2)查看和关闭系统打开进程 ...