Search code examples
powershelluwpwindowsiotwindows-iot-core-10blue-screen-of-death

Trigger a BSOD on Windows IoT Core device


I am looking for a way to trigger Blue Screen of Death (BSOD) on an IoT Device running Windows 10 IoT Core version.

I tried doing some googling around, but any of the guides either do not apply to Windows 10 IoT Core (e.g. forcing it through Ctrl + 2x Scroll Lock key combination), or do not work at all (like killing csrss.exe process, which returns with "Access denied" error - doesn't matter if it is killed from IoT Core builtin Shell, or remote PowerShell session).

I also know about Microsoft's tool called Not my fault, but it's an .exe file, not an UWP .appx package that I could easily run on Windows 10 IoT Core system.

Best thing I can think of is some kind of remote PowerShell command or creating an app that could be triggered somehow to produce a BSOD.

Disclaimer: This is intended only for academic purposes, I do not want a "hacky" solution. The device I intend to trigger BSOD on belongs to me and I do not intend to use the methods provided to cause any mayhem to anyone else.


Edit: As suggested by @Sunius in comments, there is also a possibility of writing my own kernel mode driver. If I were to pursue this solution, how can I trigger a BSOD on demand with such a driver? I have no prior experience with writing Windows drivers, so any general tips on achieving this may be useful.

I understand the bit about dereferencing a null pointer, but as I understand it, this would normally happen on driver installation/load, and I would rather need a way to install/load the driver first, then, when necessary, trigger the BSOD using the driver I provided. What are the options to communicate with driver? Do drivers allow to trigger any action from say C# UWP Application (since I cannot run other apps on IoT Core OS)?

Are there any guides, references I could read? The Microsoft documentation on this topic is rather scarce and not beginner friendly (I suppose writing drivers shouldn't be done by begginers, but still).


Solution

  • You can trigger a BSoD with the command Get-Process | Stop-Process -Force.