首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否从用户模式创建BSOD?

是否从用户模式创建BSOD?
EN

Stack Overflow用户
提问于 2011-08-12 08:53:11
回答 10查看 19.2K关注 0票数 6

有一天,我对我的XP系统感到厌烦,所以我决定尝试一下this question的一些答案,看看它们中的任何一个是否会导致BSOD。

他们没有,而且他们似乎最有可能这样做,所以我想知道是否有可能在C/C++中从用户模式触发BSOD,如果可能,如何触发?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-08-12 09:23:30

除非用户模式程序与有错误的驱动程序交互(可能是特定的操作序列可以揭示错误,特别是特定的驱动程序)干扰驱动程序堆栈,否则从用户模式制作BSOD非常困难。在用户模式下,输入在传递到内核模式之前经过验证,以确保系统的稳定性。大多数Microsoft API/驱动程序都经过了良好的验证,可以避免系统中的安全问题;驱动程序制造商也是如此。

最好的方法是干扰驱动程序堆栈,但这不是用户模式。

您可以使用NotMyFault SystInternals实用程序创建BSOD。它从根本上注入了一个驱动程序并创建了BSOD

http://download.sysinternals.com/Files/Notmyfault.zip

票数 7
EN

Stack Overflow用户

发布于 2016-12-16 02:16:34

就是这样的:

代码语言:javascript
运行
复制
#include <iostream>
#include <Windows.h>
#include <winternl.h>
using namespace std;
typedef NTSTATUS(NTAPI *pdef_NtRaiseHardError)(NTSTATUS ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStringParameterMask OPTIONAL, PULONG_PTR Parameters, ULONG ResponseOption, PULONG Response);
typedef NTSTATUS(NTAPI *pdef_RtlAdjustPrivilege)(ULONG Privilege, BOOLEAN Enable, BOOLEAN CurrentThread, PBOOLEAN Enabled);
int main()
{
    BOOLEAN bEnabled;
    ULONG uResp;
    LPVOID lpFuncAddress = GetProcAddress(LoadLibraryA("ntdll.dll"), "RtlAdjustPrivilege");
    LPVOID lpFuncAddress2 = GetProcAddress(GetModuleHandle("ntdll.dll"), "NtRaiseHardError");
    pdef_RtlAdjustPrivilege NtCall = (pdef_RtlAdjustPrivilege)lpFuncAddress;
    pdef_NtRaiseHardError NtCall2 = (pdef_NtRaiseHardError)lpFuncAddress2;
    NTSTATUS NtRet = NtCall(19, TRUE, FALSE, &bEnabled); 
    NtCall2(STATUS_FLOAT_MULTIPLE_FAULTS, 0, 0, 0, 6, &uResp); 
    return 0;
}
票数 12
EN

Stack Overflow用户

发布于 2013-06-09 03:52:03

这里有一个没有文档记录的函数NtRaiseHardError。

http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error/NtRaiseHardError.html

http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/Error/HARDERROR_RESPONSE_OPTION.html

如果第五个参数是6 (OptionShutdownSystem),你会得到一个BSOD。这需要启用关闭权限。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7034592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档