Purely for academic reasons.
is it possible to programmatically cause a BSOD to occur under windows xp/windows 7 in C#/.NE开发者_如何学编程T.
I'm suggesting there's got to be some dirty hack, or some vulnerability to abuse to cause this.
I'm looking for a snippet of code to run that guarantees a BSOD in a finite period of time.
Killing process "csrss.exe" causes BSOD.
But you need Administrator privileges to do this. I'm not sure there is a way to do this purely with restricted privileges.
EDIT:
Yep, it works alright. I cooked myself a nice little BSOD :)
System.Diagnostics.Process.GetProcessesByName("csrss")[0].Kill();
Use Process.Start
to run the SysInternals NotMyFault tool which causes a BSOD (it uses a diver to do this which is the only way).
Killing csrss.exe would also work currently but that that's an undocumented way that might just go away in future version of Windows. NotMyFault uses a documented and clean way to do it.
I once had "problems" under Windows 7, causing BSOD when using the Ping::Send method during debugging. So Debugger::Attach and then pinging might work for you, as well. :)
Create a ping. Kill the program. Instant bsod courtesy of microsoft's tcpip.sys in .net 4.
You'll get a process has locked pages. :)
For all versions of windows you can kill svchost.exe and you will see the BSoD with Critical_Process_Died
You could make the process critical and then kill it
using System;
using System.Runtime.InteropServices;
then:
[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();
Over ping your localhost, it will overload your cpu causing a bsod.
精彩评论