纯粹出于学术原因。
是否可以以编程方式在C#/ .NET中的Windows xp / windows 7下发生BSOD。
我建议必须有一些肮脏的黑客,或者一些易受虐待的漏洞导致这种情况。
我正在寻找一段代码来运行,以确保在有限的时间内完成BSOD。
答案 0 :(得分:27)
杀戮过程“csrss.exe”导致BSOD。
但您需要管理员权限才能执行此操作。我不确定是否有办法纯粹使用受限制的权限。
编辑:
是的,它运作正常。我给自己做了一个不错的小BSOD:)System.Diagnostics.Process.GetProcessesByName("csrss")[0].Kill();
答案 1 :(得分:3)
使用Process.Start
运行导致BSOD的 SysInternals NotMyFault 工具(它使用潜水员执行此操作,这是唯一的方法)。
杀死csrss.exe目前也可以正常工作,但这是一种未经证实的方式,可能会在未来的Windows版本中消失。 NotMyFault使用记录清晰的方式来执行此操作。
答案 2 :(得分:1)
我曾经在Windows 7下遇到“问题”,在调试过程中使用Ping :: Send方法导致BSOD。 所以Debugger :: Attach然后ping也可能对你有用。 :)
答案 3 :(得分:0)
创建一个ping。杀死该计划。即时bsod由.net 4中的microsoft的tcpip.sys提供。
您将获得一个已锁定页面的进程。 :)
答案 4 :(得分:0)
对于所有版本的Windows,您都可以杀死svchost.exe,您将看到带有Critical_Process_Died的BSoD
答案 5 :(得分: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();
答案 6 :(得分:-7)
过度ping你的本地主机,它会使你的cpu超载导致bsod。