English 中文(简体)
模拟蓝屏
原标题:
  • 时间:2009-03-20 19:20:40
  •  标签:

I am trying to make a program that records a whole bunch of things periodically. The specific reason is that if it bluescreens, a developer can go back and check a lot of the environment and see what was going on around that time.

My problem, is their a way to cause a bluescreen? Maybe with a windowsAPI call (ZeroMemory maybe?).

无论如何,如果您能想到一种方法在通话时造成蓝屏,我将非常感激。

我正在测试的电脑是为处理这样的东西而设计的,哈哈。

by the way the language I am using is CC++. Thank you

问题回答

You can configure a machine to crash on a keystroke (Ctrl-ScrollLock)

由于某些系统使用USB键盘可能无法正常工作,因此您还可以获取Windows调试工具,安装内核调试器,并使用“.crash”命令强制进行Bugcheck。

In order to cause a BSOD, a driver running in kernel mode needs to cause it. If you really want to do this, you can write a driver which exposes KeBugCheck to usermode.

将此翻译为中文:http://msdn.microsoft.com/en-us/library/ms801640.aspx http://msdn.microsoft.com/zh-cn/library/ms801640.aspx

感谢下面的安德鲁指出这个实用工具:

http://download.sysinternals.com/files/NotMyFault.zip

如果您终止 csrss 进程,您会很快看到一个蓝屏。

如果您想模拟像蓝屏这样的硬崩溃,您几乎必须拔掉电源线。不建议这样做。

In case of a crash, anything not saved to persistent storage will be lost. If you want to simulate a crash for purposes of logging, write a "kill switch" into your logger, which stops the logging. Now you can simulate a crash by killing the logging and making sure you have the data you would have wanted in case of an actual crash.

首先,我建議您使用虛擬機器來測試此藍屏錯誤,這樣可以在BSOD對系統造成損壞的情況下保留備份。以下是一個提示,可以通過按下CTRL + SCROLLLOCK + SCROLLLOCK來生成一個BSOD

有没有Windows API可以生成一个蓝屏?在这篇文章中没有。但如果你使用无效数据调用某些API,它们仍然可能导致内核崩溃,从而导致蓝屏。

我不确定你要测试什么。由于您的程序定期运行,因此只需要检查在系统运行时以您指定的频率转储信息即可。您是否检查蓝屏后信息仍然存在?根据转储方式(以及是否刷新缓冲区),这可能并不必要。

如果您不想编写代码(驱动程序、IOCTL...),则可以使用DiskCryptor。请注意,不需要进行磁盘加密。

只需要安装驱动程序:

dcinst.exe -设置

然后使用DC控制台生成蓝屏。

dccon.exe - 蓝屏死机





相关问题
热门标签