当前位置:  开发笔记 > 开发工具 > 正文

使用托管代码调用蓝屏死机

如何解决《使用托管代码调用蓝屏死机》经验,为你挑选了1个好方法。

在这里好奇:是否可以在Windows XP/Vista下使用.net托管代码调用Windows蓝屏死机?如果有可能,示例代码是什么?

仅仅为了记录,这不是出于任何恶意目的,我只是想知道实际杀死指定的操作系统需要什么样的代码.



1> Michael Mads..:

键盘的东西可能是个不错的选择,但是如果你需要通过代码来做,继续阅读......

你真的不需要barf,本身你需要做的就是找到KeBugCheck(Ex)函数并调用它.

http://msdn.microsoft.com/en-us/library/ms801640.aspx http://msdn.microsoft.com/en-us/library/ms801645.aspx

对于手动启动的崩溃,您希望使用0xE2(MANUALLY_INITIATED_CRASH)或0xDEADDEAD(MANUALLY_INITIATED_CRASH1)作为错误检查代码.它们被明确保留用于该用途.

但是,找到这个功能可能会有点棘手.Windows DDK可能有帮助(检查Ntddk.h) - 我目前没有它可用,我现在似乎无法找到决定性信息 - 我认为它在ntoskrnl.exe或ntkrnlpa.exe中,但我我不确定,目前还没有工具来验证它.

您可能会发现编写一个简单的C++应用程序或调用该函数的东西更容易,然后运行它.

请注意,我假设 Windows不阻止您从用户空间访问该功能(.NET可能有一些特殊规定).我自己没有测试过.


KeBugCheck函数不会有用户模式包装器,因为不允许用户模式程序使系统崩溃.但是,这并不妨碍您编写自己的内核模式驱动程序来实现它.
KeBugCheck(Ex)是一个内核函数.在ntdll.dll中似乎没有相应的用户模式包装器.
推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有