20

纯粹出于学术原因。

是否可以在 C#/.NET 的 windows xp/windows 7 下以编程方式导致 BSOD 发生。

我建议一定有一些肮脏的黑客,或者一些容易被滥用的漏洞来导致这种情况。

我正在寻找一段代码来运行,以保证在有限的时间内出现 BSOD。

4

7 回答 7

28

杀死进程“csrss.exe”会导致蓝屏死机。

但是您需要管理员权限才能执行此操作。我不确定是否有一种方法可以纯粹使用受限权限来做到这一点。

编辑:

是的,它工作正常。我给自己煮了一个漂亮的小蓝屏:)

System.Diagnostics.Process.GetProcessesByName("csrss")[0].Kill();
于 2011-04-20T21:59:41.490 回答
4

用于Process.Start运行导致 BSOD 的SysInternals NotMyFault工具(它使用潜水员来执行此操作,这是唯一的方法)。

杀死 csrss.exe 目前也可以工作,但这是一种未记录的方式,可能会在未来版本的 Windows 中消失。NotMyFault 使用记录在案且干净的方式来执行此操作。

于 2013-03-02T22:59:39.577 回答
0

我曾经在 Windows 7 下遇到“问题”,在调试过程中使用 Ping::Send 方法时导致 BSOD。所以 Debugger::Attach 然后 ping 也可能对你有用。:)

于 2011-04-20T22:09:17.087 回答
0

创建一个 ping。杀死程序。即时蓝屏死机由 .net 4 中的 microsoft tcpip.sys 提供。

你会得到一个进程已锁定页面。:)

于 2016-02-11T12:28:42.297 回答
0

对于所有版本的 Windows,您可以杀死 svchost.exe,您将看到带有 Critical_Process_Died 的 BSoD

于 2019-07-02T18:14:19.423 回答
0

您可以使该过程变得至关重要,然后将其杀死

using System;
using System.Runtime.InteropServices;

然后:

[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);
System.Diagnostics.Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
System.Diagnostics.Process.GetCurrentProcess().Kill();
于 2020-08-09T14:42:46.253 回答
-11

通过 ping 本地主机,它会使您的 CPU 过载,从而导致蓝屏死机。

于 2012-12-15T00:19:05.283 回答